![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Мне нужно поймать все, что находится после предлога "с", но только в том случае, если от начала строки и до предлога "с" нет предлога "со". Как это сделать? Регулярное выражение выдает ошибку "Variable length lookbehind not implemented". Добавлено через 2 минуты и 45 секунд Вариант захватить все что до предлога "с" и все что после "с", а потом анализировать отрезок до предлога - не очень удобен, потому что несколько таких проверок нужно сделать в одной регулярке. Это сообщение отредактировал(а) Suppir - 29.8.2011, 15:59 |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Предлагаю такой вариант
Это сообщение отредактировал(а) Pfailed - 29.8.2011, 18:42 |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Развивая мысль...
Вот, здесь уже не надо на defined проверять. Хотя рекомендую всё же первый вариант, он попроще как для понимания, так и для интерпретатора. |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
Регулярные выражения Perl не поддерживают такие конструкции, только "fixed-regexp" при просмотре назад. А вообще не проще ли воспользоваться функцией index, определить есть ли в тексте предлоги "со" и "с" и как они размещены, и если правильно то уже другой функцией subst забрать нужную часть текста. |
|||
|
||||
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Спасибо за предложенные варианты, буду разбираться. На самом деле, конечно, у меня более сложное регулярное выражение; в нем нужно сделать в нескольких местах проверки вперед и назад. Уже думаю, что лучше бы, действительно, сначала резать line на отдельные части, а в них уже проводить проверки...
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |