|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 19 Nov 2002 16:33:46 To : Andrew Sagulin Subject : Re: Проблемы с логикой регулярных выражений -------------------------------------------------------------------------------- Здравствуй, Andrew Sagulin. S>> Итак. Есть строка. Для определенности: $txt='fhjd abra1 jwfhui abra2 hiwf S>> myexp jioer abra3'; S>> Hу так вот. Hам известно, что в строке есть фраза S>> "myexp". Hо в строке есть так же различные вариации abra\d, идущие S>> перед и после "myexp". Требуется выдрать ближайший abra\d слева от S>> myexp. К примеру из наше строки, регэксп должен выдрать abra2. AS> Я не знаю почему (случайно получилось), но ниже приведённый regexp работает AS> так, как тебе надо. AS> $txt =~ /(?:(abra\d).+?)+myexp/; AS> 2All: Объясните, почему он работает? :) Я думал, он должен выдать массив из AS> всех abra\d, стоящих перед myexp, а он выдаёт только самый последний. Потому что без /g, кажется. Точно не уверен. Лучше MRE перечитать. -- 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/14454ea158d22.html, оценка из 5, голосов 10
|