Разобрался. Причина оказалась на поверхности.24.08.06 17:11 Число просмотров: 2058 Автор: Heller <Heller> Статус: Elderman Отредактировано 24.08.06 17:11 Количество правок: 1
Условное выражение привязывается строго к позиции. Соответствие ищется не по всей оставшейся строке, а должно идти сразу начиная с позиции, в которой оно стоит. То есть правильный вариант:
Задача: в переменной $rss лежит обычный RSS-документ. Надо вырезать из него последнее сообщение, то есть последнюю встречающуюся конструкции <item>.*</item>. Код:
$rss=~s#<item>(?!<item>).*</item>##s;
Вырезает такая штука все от начального <item> до конечного </item>, игнорируя условный шаблон. Уже двадцать минут бьюсь - не могу понять в чем дело. Будут идеи?
ЗЫ. Конечно, есть много способов написать по-другому, что я уже и сделал, но интересует почему не работает конкретно данное выражение.
Разобрался. Причина оказалась на поверхности.24.08.06 17:11 Автор: Heller <Heller> Статус: Elderman Отредактировано 24.08.06 17:11 Количество правок: 1
Условное выражение привязывается строго к позиции. Соответствие ищется не по всей оставшейся строке, а должно идти сразу начиная с позиции, в которой оно стоит. То есть правильный вариант: