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

Здесь обсуждаются темы, косвенно связанные с Far.
User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Tue 24 Nov, 2015 16:44

Latest post of the previous page:

Raistlin, итого, вам требуется найти “foo чтоУгодно bar”, но чтобы в этом “чтоУгодно” не содержалось “foo”? Я правильно понял?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Raistlin
Posts: 656
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Contact:

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

Postby Raistlin » Tue 24 Nov, 2015 16:46

Да.
Magically yours
Raistlin

User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Tue 24 Nov, 2015 17:03

HaRT wrote:Source of the post требуется найти “foo чтоУгодно bar”, но чтобы в этом “чтоУгодно” не содержалось “foo”
foo((?!foo).)*?bar (захват нежадный; если убрать ‘?’ после ‘*’, то будет жадный).
Last edited by HaRT on Wed 25 Nov, 2015 01:10, edited 1 time in total.
Reason: Исправлена краевая ошибка
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Raistlin
Posts: 656
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Contact:

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

Postby Raistlin » Tue 24 Nov, 2015 17:19

HaRT, спасибо, в принципе работает, но в моем конкретном приложении (WebSite-Watcher), к сожалению, сносит крышу парсеру.
Magically yours

Raistlin

User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Tue 24 Nov, 2015 17:26

Raistlin wrote:Source of the post в моем конкретном приложении (WebSite-Watcher), к сожалению, сносит крышу парсеру
А какой там движок регэкспов? И в чём выражается это „сносит крышу“?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Raistlin
Posts: 656
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Contact:

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

Postby Raistlin » Tue 24 Nov, 2015 17:33

А кто его знает, какой движок. Я однажды писал автору, что вот такой-то регэксп не детектит того, что должен, - получил в ответ что-то вроде: "Не делайте так".
Image
Magically yours

Raistlin

User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Tue 24 Nov, 2015 17:48

Raistlin wrote:Source of the post сносит крышу парсеру
Попробуйте улучшенный (укороченный) вариант: (foo)((?!\1).)*?bar — вдруг прокатит…
Last edited by HaRT on Wed 25 Nov, 2015 01:11, edited 1 time in total.
Reason: Исправлена краевая ошибка
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Raistlin
Posts: 656
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Contact:

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

Postby Raistlin » Tue 24 Nov, 2015 20:18

Пробовал...
Magically yours

Raistlin

User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Wed 25 Nov, 2015 14:43

Raistlin wrote:Source of the post в принципе работает
Обращаю внимание, я исправил в регэкспах ошибку в случае, если чтоУгодно начиналось с foo. Кроме того, по некотором размышлении обнаружилось ограничение: если конец foo (один или более символов) совпадает с началом bar, то некоторые подходящие строки не будут найдены, например: foo=“do”, bar=“od”, чтоУгодно=“do321dod”.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Raistlin
Posts: 656
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Contact:

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

Postby Raistlin » Thu 26 Nov, 2015 15:25

А мне вот интересно. Надо найти строку: начинается с foo1, затем - произвольная последовательность символов, которая не содержит foo1 (ППС), затем - foo2, затем - снова ППС, и заканчивается все bar. Вот работает (в RESearch), а - нет ( ).
Magically yours

Raistlin

User avatar
Wave
Posts: 1693
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Postby Wave » Tue 24 May, 2016 18:49

Из разного, если вдруг кому. Лучший ликбез по регуляркам, что я встречал — из видеокурса по JS: вот, 28-й урок. Уже сколько с ними знаком, а и то этот ликбез кое-какие моменты для меня прояснил.
Пользуюсь ФАРом больше 15 лет © собирательный.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

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

Postby Smitis » Wed 25 May, 2016 10:21

Интересно, зачем это видеокурсом делать? Чтобы попивая пивко смотреть с восхищением на большом экране, как чувак ловко мышкой тыкает? :D
Разум когда-нибудь победит.

User avatar
Wave
Posts: 1693
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Postby Wave » Wed 25 May, 2016 14:50

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

P.s. На видеокурс автор затратил гораздо меньше времени и усилий, чем если бы делал это в виде книги. И поскольку он бесплатно результат своего труда выложил, претензий к нему быть не может.
Пользуюсь ФАРом больше 15 лет © собирательный.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

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

Postby Smitis » Wed 25 May, 2016 20:31

Не, лекция это всё-таки совсем другое.
Разум когда-нибудь победит.

User avatar
Wave
Posts: 1693
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Postby Wave » Wed 25 May, 2016 23:04

Не вижу разницы. Человек что-то объясняет, следуя плану урока и сопровождая объяснения демонстрацией.
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
Raistlin
Posts: 656
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Contact:

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

Postby Raistlin » Wed 25 May, 2016 23:14

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

Raistlin

User avatar
cmd.exe
Posts: 313
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

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

Postby cmd.exe » Mon 12 Sep, 2016 09:20

Вот тут очень удобно создавать регекспы regex101.com/.
Last edited by HaRT on Mon 12 Sep, 2016 11:24, edited 1 time in total.
Reason: Исправлена ссылка
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates


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

Who is online

Users browsing this forum: No registered users and 1 guest