图片网址的正则表达式

问题描述

| 我已经在使用HtmlAgilityPack解析页面,并获取大多数img来源。但是,许多网站在img src属性(例如,内联javascript,其他属性,其他元素)之外的其他位置都包含img网址。我想投放一个稍宽的网,并在整个html字符串上运行一个正则表达式,以捕获正则表达式中的以下内容。 必须以http://,https://,//或/开头 然后,任意数量的有效网址路径字符 必须以.jpeg,.jpg,.png或.gif结尾 我想这很容易写,但是我不是一个很棒的正则表达式。我想这些零件看起来像这样 ^((https?\\:\\ / \\ /)|(\\ / {1,2})) (有任何想法吗?) (。(jpe?g | png | gif))$ 谁能帮我填补空白? 谢谢 回答
(https?:)?//?[^\\\'\"<>]+?\\.(jpg|jpeg|gif|png)
    

解决方法

        有很多用于匹配URL的临时正则表达式,但是据我所知,它们都没有声称完全可靠。但是,这将尝试满足您的条件。 根据[1],有效的URL字符(不保留)是字母数字和符号
$-_.+!*\'(),
。但是,也有保留字符,即[2]简明地给出的ѭ2字符-我在大部分RFC中都找不到列表。我知道还有其他用于查询字符串的字符,即ѭ3so,因此需要包含在内。然后,您遇到了一个问题,即并非每个人都正确地编码了他们的URL字符,因此在其他内容中可能会出现空格(我不知道如何解释,因为浏览器如何自动更正这些内容可能会令人迷惑)。 因此,您可能只是假设URL中可以包含任何内容,但仅仅是它必须以特定的内容开头并以特定的内容(您提供的内容)结尾,但这仍然是不可靠的。
@(https?:)?//?[^\'\"<>]+?\\.(jpg|jpeg|gif|png)@
    ,        
(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*\\.(?:jpg|gif|png))(?:\\?([^#]*))?(?:#(.*))?
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...