Регулярные выражения — ликбез по регэкспам

Здесь обсуждаются темы, косвенно связанные с Far.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Регулярные выражения — ликбез по регэкспам

Post by HaRT »

Latest post of the previous page:

Raistlin, итого, вам требуется найти “foo чтоУгодно bar”, но чтобы в этом “чтоУгодно” не содержалось “foo”? Я правильно понял?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Регулярные выражения — ликбез по регэкспам

Post by Raistlin »

Да.
Magically yours
Raistlin
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Регулярные выражения — ликбез по регэкспам

Post by HaRT »

HaRT wrote: требуется найти “foo чтоУгодно bar”, но чтобы в этом “чтоУгодно” не содержалось “foo”
foo((?!foo).)*?bar (захват нежадный; если убрать ‘?’ после ‘*’, то будет жадный).
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Исправлена краевая ошибка
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Регулярные выражения — ликбез по регэкспам

Post by Raistlin »

HaRT, спасибо, в принципе работает, но в моем конкретном приложении (WebSite-Watcher), к сожалению, сносит крышу парсеру.
Magically yours
Raistlin
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Регулярные выражения — ликбез по регэкспам

Post by HaRT »

Raistlin wrote: в моем конкретном приложении (WebSite-Watcher), к сожалению, сносит крышу парсеру
А какой там движок регэкспов? И в чём выражается это „сносит крышу“?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Регулярные выражения — ликбез по регэкспам

Post by Raistlin »

А кто его знает, какой движок. Я однажды писал автору, что вот такой-то регэксп не детектит того, что должен, - получил в ответ что-то вроде: "Не делайте так".
Image
Magically yours
Raistlin
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Регулярные выражения — ликбез по регэкспам

Post by HaRT »

Raistlin wrote: сносит крышу парсеру
Попробуйте улучшенный (укороченный) вариант: (foo)((?!\1).)*?bar — вдруг прокатит…
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Исправлена краевая ошибка
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Регулярные выражения — ликбез по регэкспам

Post by Raistlin »

Пробовал...
Magically yours
Raistlin
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Регулярные выражения — ликбез по регэкспам

Post by HaRT »

Raistlin wrote: в принципе работает
Обращаю внимание, я исправил в регэкспах ошибку в случае, если чтоУгодно начиналось с foo. Кроме того, по некотором размышлении обнаружилось ограничение: если конец foo (один или более символов) совпадает с началом bar, то некоторые подходящие строки не будут найдены, например: foo=“do”, bar=“od”, чтоУгодно=“do321dod”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Регулярные выражения — ликбез по регэкспам

Post by Raistlin »

А мне вот интересно. Надо найти строку: начинается с foo1, затем - произвольная последовательность символов, которая не содержит foo1 (ППС), затем - foo2, затем - снова ППС, и заканчивается все bar. Вот работает (в RESearch), а - нет ().
Magically yours
Raistlin
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Регулярные выражения — ликбез по регэкспам

Post by Wave »

Из разного, если вдруг кому. Лучший ликбез по регуляркам, что я встречал — из видеокурса по JS: вот, 28-й урок. Уже сколько с ними знаком, а и то этот ликбез кое-какие моменты для меня прояснил.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Регулярные выражения — ликбез по регэкспам

Post by Smitis »

Интересно, зачем это видеокурсом делать? Чтобы попивая пивко смотреть с восхищением на большом экране, как чувак ловко мышкой тыкает? :D
Разум когда-нибудь победит.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Регулярные выражения — ликбез по регэкспам

Post by Wave »

Интересно, зачем в школах и институтах лекции? Можно ж учебники читать, а лучше справочники.
Принцип свободный: не нравится — не ешь!

P.s. На видеокурс автор затратил гораздо меньше времени и усилий, чем если бы делал это в виде книги. И поскольку он бесплатно результат своего труда выложил, претензий к нему быть не может.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Регулярные выражения — ликбез по регэкспам

Post by Smitis »

Не, лекция это всё-таки совсем другое.
Разум когда-нибудь победит.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Регулярные выражения — ликбез по регэкспам

Post by Wave »

Не вижу разницы. Человек что-то объясняет, следуя плану урока и сопровождая объяснения демонстрацией.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
Raistlin
Posts: 750
Joined: Wed 16 Mar, 2005 16:01
Has thanked: 3 times
Been thanked: 1 time

Регулярные выражения — ликбез по регэкспам

Post by Raistlin »

Лекция - это не урок. Конечно, бывают лекторы, читающие по книжке, но это неправильные лекторы.
Единственный плюс видеоурока как способа подачи информации - экономия времени подающего, как вы правильно отметили. Но за ссылку все равно спасибо.
Magically yours
Raistlin
Post Reply

Return to “Операционные системы, командные оболочки и прочее”