V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
MisterZhang
V2EX  ›  问与答

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

  •  
  •   MisterZhang · 2019-06-19 14:53:23 +08:00 · 1633 次点击
    这是一个创建于 1983 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 的匹配不了

    1 条回复    2019-06-21 17:15:41 +08:00
    MisterZhang
        1
    MisterZhang  
    OP
       2019-06-21 17:15:41 +08:00
    求别沉啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1091 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:25 · PVG 07:25 · LAX 15:25 · JFK 18:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.