【发布时间】:2014-10-12 00:15:48
【问题描述】:
我正在尝试使用以下正则表达式从 html 源代码中获取图像 url,但是当图像 url 中有空格时它会失败。例如这个网址:
<img src="http://a57.foxnews.com/global.fncstatic.com/static/managed/img/Entertainment/876/493/kazantsev pink bikini reuters.jpg?ve=1&tl=1" alt="kazantsev pink bikini reuters.jpg" itemprop="image">
$image_regex_src_url = '/<img[^>]*'.'src=[\"|\'](.*)[\"|\']/Ui';
preg_match_all($image_regex_src_url, $string, $out, PREG_PATTERN_ORDER);
这给了我以下信息。
http://a57.foxnews.com/global.fncstatic.com/static/managed/img/Entertainment/876/493/kazantsev
有没有办法匹配任何字符,包括空格?还是我必须在php配置中设置?
【问题讨论】:
-
.*也包含空格。问题不在这里,正则表达式工作正常。显示您尝试将其应用到的文本。可能会发生没有空格,但是'或"(它们根本不应该在url 中) -
您可以简化您的正则表达式:
<img.*?src=["|'](.*)["|']这个匹配您的整个 URL。您可以使用regexp simulators 来测试您的表达方式。 -
我正在尝试在此处发布字符串以查看是否有其他原因无法正常工作,但我在使用 stackoverflow 截断它时遇到问题,是否可以在其中添加标签粘贴代码时的cmets? a57.foxnews.com/global.fncstatic.com/static/managed/img/…粉色比基尼reuters.jpg?ve=1&tl=1" alt="kazantsev 粉色比基尼reuters.jpg" itemprop="image">
标签: php regex whitespace