Пример текста по адресу: https://regex101.com/r/tfYEkO/1
Я хочу найти heredocs в коде php, который содержит пустую строку.
Я могу сделать это с помощью этого регулярного выражения, но если есть 2 heredocsв файле это будет совпадать с начала первого до конца второго:
<<<([A-Z]+)\n.*\n\n.*\n *\1\b
Так что я думал, что отрицательные взгляды решат это, но это ничего не соответствует:
<<<([A-Z]+)\n(?!.*\1.*).*\n\n(?!.*\1.*).*\n *\1\b
Я не думаю, что смогу использовать отрицательные взгляды с .*
в нем.Я попробовал флаг ungreedy, но это, похоже, не изменило его.
К вашему сведению, heredoc в php начинается с <<<
и ключевого слова и заканчивается этим ключевым словом в отдельной строке:
$foo = <<<HTML
This is the string that is returned.
It can contain multiple lines.
HTML;