|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 23 Nov 2002 14:17:20 To : Alexey Sheynuk Subject : Re: Проблемы с логикой регулярных выражений -------------------------------------------------------------------------------- Здравствуй, Alexey Sheynuk. S>>> Итак. Есть строка. Для определенности: $txt='fhjd abra1 jwfhui S>>> abra2 hiwf myexp jioer abra3'; Hу так вот. Hам известно, что в S>>> строке есть фраза "myexp". Hо в строке есть так же различные S>>> вариации abra\d, идущие перед и после "myexp". Требуется выдрать S>>> ближайший abra\d слева от myexp. К примеру из наше строки, регэксп S>>> должен выдрать abra2. AS>> Я не знаю почему (случайно получилось), но ниже приведённый regexp AS>> работает так, как тебе надо. AS>> $txt =~ /(?:(abra\d).+?)+myexp/; AS> еще вариант: AS> $txt =~ /.*(abra\d)+.*myexp.*/; Этот не сработает. Съест первое abra\d вместо последнего. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/144542fb1bae0.html, оценка из 5, голосов 10
|