Удалите код ASP с помощью Preg_Replace - PullRequest
0 голосов
/ 25 июня 2011

Мне нужно удалить устаревший код ASP из включаемых файлов в приложении PHP - я пытаюсь сопоставить все между <% и%> с помощью регулярного выражения /(<%([.\r\n\r])+%>)/ через preg_replace, но это не удается. Где я ошибся?

Ответы [ 4 ]

1 голос
/ 25 июня 2011

Точка [.] не применяется ко всем символам внутри [класса символов].Рассмотрим это вместо этого:

/(<%.+?%>)/

Его можно прочитать как «соответствует <%, затем как можно меньше всего, за которым следует%>».Этот ленивый не будет есть код между <% ...%> и следующим <% ...%>.

0 голосов
/ 25 июня 2011
preg_replace('/<%(.*)%>/s', '$1', $string);
0 голосов
/ 25 июня 2011

Вы не используете свой класс персонажа правильно (я предполагаю, что вы пытаетесь сопоставить все символы и новые строки).Попробуйте:

/(<%(.)+?%>)/s

0 голосов
/ 25 июня 2011

Чтобы вычислить все между <% и %> выражение будет:

/<%(.*?)%>/
...