[英]Regex to get src value from an img tag
我使用以下正则表达式来获取HTML文档中第一个img
标记的src
值。
string match = "src=(?:\"|\')?(?<imgSrc>[^>]*[^/].(?:jpg|png))(?:\"|\')?"
现在它捕获了我不需要的总src
属性。 我只需要src
属性中的url。 怎么做?
用其他东西解析你的HTML。 HTML不是常规的 ,因此正则表达式根本不适合解析它。
如果HTML严格,请使用HTML解析器或XML解析器。 使用XPath获取src属性的值要容易得多:
//img/@src
XML解析内置于System.Xml
命名空间中 。 它非常强大。 如果HTML不严格, HTML解析会有点困难,但是有很多库会为你做这件事。
请参阅何时不在C#(或Java,C ++等)中使用Regex并寻找C#HTML解析器
PS,如何在评论中添加指向StackOverflow问题的链接?
您的正则表达式应该(在英语中)匹配引号后的任何字符,这不是src属性上的标记内的引号。
在Perl正则表达式中,它将是这样的:
/src=[\"\']([^\"\']+)/
运行此URL后,URL将为$1
。
当然,这假设引用了src属性中的url。 如果不是,您可以相应地修改[]
括号中的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.