php正则表达式:负面反馈中的反向引用的替代方案

Red*_*arf 5 php regex negative-lookbehind

我想找到后面的字符串中没有出现捕获的组的实例:

aaaBbb  = CccBbb  <- format is valid, skip
aaaDddd = CccDddd <- format is valid, skip
aaaEeee = CccFfff <- format is not valid, match this one only
Run Code Online (Sandbox Code Playgroud)

所以这匹配我不想匹配的行(https://regex101.com/r/lon87L/1)

/^ +\w+([A-Z][a-z+]) += +\w+\1$/mg
Run Code Online (Sandbox Code Playgroud)

我已经在https://www.regular-expressions.info/refadv.html上看到php不支持负面反馈中的反向引用,但正则表达式的其他实现可以.所以像这样的东西会匹配我想要匹配的无效行,但它在php中不起作用:

/^ +\w+([A-Z][a-z+]) += +\w+(?<!\1)$/mg
Run Code Online (Sandbox Code Playgroud)

除了匹配所有三行并循环遍历php foreach中的匹配之外,还有什么可行吗?

Dav*_*vіd 2

尝试使用负向前看而不是向后向后看。它工作得同样好,而且它可以在 PHP 中工作。

^ +\w+([A-Z][a-z]+) += +(?!\w+\1).*$
Run Code Online (Sandbox Code Playgroud)

正则表达式101演示

PHP演示