如何解决图片网址的正则表达式
| 我已经在使用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))(?:\\?([^#]*))?(?:#(.*))?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。