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 的匹配不了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.