正则表达式强制组顺序

时间:2018-11-10 16:33:50

标签: regex

我是正则表达式的新手,我有一个问题。 像本例一样,https://regex101.com/r/Iak7cF/1/我该如何强制

src="wow"

进入第1组,并且

title="toto"   

要加入第2组?

我想以任意顺序捕获此类文本,只要其中包含:

class="formula"

我做对了吗?

2 个答案:

答案 0 :(得分:-1)

正则表达式非常灵活且功能强大,但是通常,它们不是解析XML,HTML或XHTML的正确工具。来自WinBatch

  

正则表达式仅适用于解析严格定义的文本。由于正则表达式不能真正理解匹配的上下文,因此,如果文本的结构发生变化,则它们可能会被愚弄。特别是,正则表达式在层次结构方面存在困难。

PerlMonks有a detailed explanation的原因,为什么正则表达式不是所有情况下的最佳解决方案,而是最简单的情况。他们这样总结:

  

所以我希望很清楚:请不要尝试使用正则表达式解析任意XML / HTML!

答案 1 :(得分:-1)

您最好使用HTML解析器

但是,如果您确实要使用正则表达式,则必须使用命名组来实现所需的功能。

<img(?=[^>]*class="formula")(?=.*(?<src>src=".*"))(?=.*(?<title>title=".*")).*>

DEMO