Regex 如何解析<;img src>;用正则表达式?

Regex 如何解析<;img src>;用正则表达式?,regex,Regex,我需要一个聪明的正则表达式来匹配以下内容中的…: <img src="..." <img src='...' <img src=... 我想匹配src的内部内容,但是仅当它被“,”或无包围时才匹配。这意味着不能接受或 你知道如何用一个正则表达式匹配这3个案例吗 到目前为止,我使用了类似这样的(“|”|[\s\s])(.*?\1,我想放松的部分是hacky[\s\s],我用它来匹配开头和结尾的“缺失符号”…哇,今天我要回答的第二个问题 。使用HTML/XML解析器,您的生活会

我需要一个聪明的正则表达式来匹配以下内容中的

<img src="..."
<img src='...'
<img src=...

我想匹配
src
的内部内容,但是仅当它被“,”或无包围时才匹配。这意味着不能接受

你知道如何用一个正则表达式匹配这3个案例吗


到目前为止,我使用了类似这样的
(“|”|[\s\s])(.*?\1
,我想放松的部分是hacky
[\s\s]
,我用它来匹配
开头和结尾的“缺失符号”…
哇,今天我要回答的第二个问题

。使用HTML/XML解析器,您的生活会轻松得多。将为您清理HTML代码,这样您就可以先通过Tidy运行HTML,然后再通过解析器运行HTML。一些基于tidy的库除了santizing之外还将执行解析,因此您甚至不必通过另一个解析器来运行它

例如,Java有,PHP有

更新

与我更好的判断相反,我要告诉你:

/]+)>/


这只适用于你的具体情况。即使如此,它也不会考虑图像源名称中的转义
,或
字符。可能还有许多其他限制。捕获组会为您提供图像名称(如果名称用单引号或双引号括起来,它也会给你这些,但你可以去掉它们)。

根据你用来解决这个问题的脚本或编程语言,可以使用多个正则表达式,也可以只使用一个检查组的正则表达式

|)


如果您只需要image src属性,则不必使用解析器进行解析。事实上,如果您需要其他属性,只需使用不同的正则表达式。您将遇到图像标记的多个匹配问题,但在这种情况下,只需匹配图像标记,并为每个标记执行所需的正则表达式。

这听起来像是您真正需要的正则表达式是一个HTML解析器,而不是正则表达式。我使用Java。我不需要HTML解析器…真的。“聪明”和“正则表达式”“很少有一个圆满的结局。不,我计划不使用解析器。这个任务足够简单,可以由一个小正则表达式来完成。我们要告诉你的是,这个任务不够简单,不能由一个小正则表达式来完成。如果是的话,你已经做到了。@Lucho,如果任务简单到可以由正则表达式完成,你为什么要问我们?我们告诉你,这个任务还不够简单,无法用正则表达式(小或其他)来解决。好吧,你让我相信:-)这个世界是残酷的,可能充满了丑陋和混乱的html代码,所以解析器是一种拯救。。。但在一个完美的世界中,可能只需要grep img标记的src属性的内容:D@Lucho可能,但可能不是HTML不规则:)