当我们有:
<img src="http://example.com/myimageurl.jpg" />
<img class="my-image-class" src="http://example.com/myimageurl2.jpg" />
使用grep:
grep -Po '(?<=src=")[^"]*' filename
我把这两个图片网址都搞定了。
实际上我只需要具有特定类&#34; my-image-class&#34;的图像的网址。
我怎样才能做到这一点?
提前致谢!
答案 0 :(得分:0)
你不应该用正则表达式解析html,但如果你正在寻找一个快速的grep
正则表达式,这是有效的。
<img\s+(?=[^>]*?(?<=\s)class\s*=\s*"my-image-class")[^>]*?(?<=\ssrc=")([^"]*)
扩展
<img \s+
(?=
[^>]*?
(?<= \s )
class \s* = \s* "my-image-class"
)
[^>]*?
(?<= \s src=" )
( [^"]* ) # (1)
输出
** Grp 0 - ( pos 49 , len 67 )
<img class="my-image-class" src="http://example.com/myimageurl2.jpg
** Grp 1 - ( pos 82 , len 34 )
http://example.com/myimageurl2.jpg
答案 1 :(得分:0)
不确定您的用例是什么,但您可以通过在http://jsbin.com等网站粘贴HTML并编写几行jQuery来轻松完成此操作:
var imgs = [];
$('img').each( function() {
var $img = $(this);
if( $img.hasClass('my-image-class') ) {
imgs.push($img.attr('src'));
}
});
console.log(imgs);