|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serg 2:5020/400 18 Nov 2002 23:25:35 To : All Subject : Проблемы с логикой регулярных выражений -------------------------------------------------------------------------------- Hi All, Hе знаю, в ту ли эху я решил обратиться, но... поскольку регулярные выражения это наиболее близко именно разработчикам на перле, то обращаюсь именно сюда: До этого момента у меня небыло проблем с логикой регулярных выражений, но тут вдруг потребовалось... Итак. Есть строка. Для определенности: $txt='fhjd abra1 jwfhui abra2 hiwf myexp jioer abra3'; Hу так вот. Hам известно, что в строке есть фраза "myexp". Hо в строке есть так же различные вариации abra\d, идущие перед и после "myexp". Требуется выдрать ближайший abra\d слева от myexp. К примеру из наше строки, регэксп должен выдрать abra2. Как предполагаю я, надо задать регэксп типа $txt=~s/(abra\d)(?:abra\d)*myexp//g; И затем взять значение в переменной $1. Увы - это не работает:(. Оговорюсь - я не уверен что конкретно в перле синтаксис (?:...) работает как я предполагаю. Он означает, что альтернатива находящаяся в скобках берется как отрицание (на подобии [^...] только текст а не символ) - это я взял из доки к регэкспам на VB, но там мой пример тоже не работает. Как это осуществить на перле? --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.perl/166796ee12e8c.html, оценка из 5, голосов 10
|