求一个正则表达式,可以筛选出网页里面的所有图片的 url

2019-06-19 14:53:23 +08:00
 MisterZhang

iOS 项目里面 webView 加载网页,需要在网页 html 代码里面需要筛选出所有的图片地址,有这三种格式的 "http://xxx.jpg" "https://xxx.jpg" "//xxxx.jpg" 请问这个正则表达式应该怎么写呢。

目前使用的正则是匹配 src 标签的

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"src=[\"']?([^>'\"]+)(jpg|png|gif|jpeg)" options:NSRegularExpressionAllowCommentsAndWhitespace error:nil]

但是这个正则没办法匹配出还没有显示在界面上的图片,因为懒加载,一开始 src 标签里面的图片地址都是一个默认图,只有显示在界面上的时候图片地址才会替换成真正的图片地址,但是真正的图片地址是在一个数组里面,有可能是"//xxxx.jpg"这种格式的,使用

 NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"( http[^\\s]+(jpg|jpeg|png|tiff)\\b)" options:NSRegularExpressionAllowCommentsAndWhitespace error:nil];

这种只能匹配出带 scheme 的图片链接,"//xxxx.jpg"这种不带 scheme 的匹配不了

1628 次点击
所在节点    问与答
1 条回复
MisterZhang
2019-06-21 17:15:41 +08:00
求别沉啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/575482

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX