![]() |
Модераторы: ginnie |
![]() ![]() ![]() |
|
pep |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Есть строчка типа "foo bla-bla-bla foo bla-bla .... foo bla bar". Как из него выцепить последнее "bla"? Сам новичок, курю уже пару часов PCRE-документацию, ничего не получается... Суть задачи, видимо, в том, чтобы выцепить последнее foo - вот это у меня и не выходит...
![]() Это сообщение отредактировал(а) pep - 8.4.2010, 09:13 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
А это и не так просто
![]() Что-то вроде
Но если нужно не просто найти (какой в этом смысл?), а продолжить поиск с данного места (вполне жизненная задача), то такая конструкция не подойдет, т.к. она пробегает строку до конца. Тогда читайте PerlCookbook, там есть параграф, который так и называется: "Поиск последнего совпадения". |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 5 Всего: 10 |
m/.*\Kbla/s and print ${^MATCH};
Это сообщение отредактировал(а) Logo - 8.4.2010, 12:25 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
А ведь и верно! Оказывается, все крайне просто...
Logo, а что \K означает? |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 5 Всего: 10 |
\K выбрасывает из совпадения все что совпало перед ней. Это новинка perl 5.10, ускоряет и упрощает код.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |