繁体   English   中英

正则表达式从img标签获取src值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM