我有两个图像标签,一个接一个
<img class="c1 c2 c3" title="Image Title 1" src="http://example.com/image-1.jpg" alt="" width="620" height="521"><img class="c1 c2 c3" title="Image Title 2" src="http://example.com/image-2.jpg" alt="" width="620" height="521">
我想要一个可以获取两件事的正则表达式:
我该怎么做?
P.S。做某人知道我可以在线测试正则表达式
答案 0 :(得分:4)
正则表达式匹配第一个 IMG 标记及其 src 值:
$subject = '<img class="c1 c2 c3" title="Image Title 1" src="http://example.com/image-1.jpg" alt="" width="620" height="521"><img class="c1 c2 c3" title="Image Title 2" src="http://example.com/image-2.jpg" alt="" width="620" height="521">';
preg_match('/<img\s.*?\bsrc="(.*?)".*?>/si', $subject, $matches);
print_r($matches);
输出:
Array
(
[0] => <img class="c1 c2 c3" title="Image Title 1" src="http://example.com/image-1.jpg" alt="" width="620" height="521">
[1] => http://example.com/image-1.jpg
)
有很多工具可以在线测试正则表达式。以下是其中几个:
答案 1 :(得分:2)
答案 2 :(得分:0)
使用:preg_match('/<img [>]*src="([^"]*)"/i',$subject,$matches);
答案 3 :(得分:0)
尝试/(<img[^>]*)/
之类的内容来获取第一个img标记(或任何使用反向引用)。
然后使用/src="([^"])/
之类的东西从标记字符串中获取src。