doppelganger
Guest
[регулярные выражения] вычисление подстроки
Уважаемые специалисты по регэкспам, объясните неспециалисту — как штатными средствами решается дилемма с вычленением
подстрок типа
begin
любые данные
begin целевая строка end
end
Причем уровень вложения begin/end может быть сколь угодно большим. То есть надо вытащить минимальную подстроку между begin и end, в которой нет begin (или end). Как выяснилось, стандарт не подразумевает шаблоны с исключением какой-то подстроки. На перле есть штатное решение —
while (<>) {
if (/BEGIN PATTERN/ .. /END PATTERN/) {
# line falls between BEGIN and END in the
# text, inclusive.
} }
Но php не поддерживает оператор диапазона (..)
Как быть?
Уважаемые специалисты по регэкспам, объясните неспециалисту — как штатными средствами решается дилемма с вычленением
подстрок типа
begin
любые данные
begin целевая строка end
end
Причем уровень вложения begin/end может быть сколь угодно большим. То есть надо вытащить минимальную подстроку между begin и end, в которой нет begin (или end). Как выяснилось, стандарт не подразумевает шаблоны с исключением какой-то подстроки. На перле есть штатное решение —
while (<>) {
if (/BEGIN PATTERN/ .. /END PATTERN/) {
# line falls between BEGIN and END in the
# text, inclusive.
} }
Но php не поддерживает оператор диапазона (..)
Как быть?