Я хочу найти случаи, когда захваченная группа не появляется позже в строке:
aaaBbb = CccBbb <- format is valid, skip
aaaDddd = CccDddd <- format is valid, skip
aaaEeee = CccFfff <- format is not valid, match this one only
Так что это соответствует линиям, которые я не хочу совпадать (https://regex101.com/r/lon87L/1)
/^ +\w+([A-Z][a-z+]) += +\w+\1$/mg
Я читал на https://www.regular -expressions.info / refadv.html , что php не поддерживает обратные ссылки внутри отрицательного вида, но другие реализации регулярных выражений могут. Так что что-то вроде этого будет соответствовать недопустимым строкам, которые я хочу сопоставить, но это не работает в php:
/^ +\w+([A-Z][a-z+]) += +\w+(?<!\1)$/mg
Есть ли что-нибудь еще, что могло бы работать, кроме сопоставления всех трех строк и циклического просмотра совпадений в php foreach?