Пайтон такой Пайтон

В regexp никаких тебе «(?R)», нет once-only subpatterns, нет юникодных диапазонов, нет «\G». Сижу, как дурак, клепаю конечные автоматы. Сделать рекурсию в регулярках с одними группами, но без «once-only subpatterns» я ниасилил, а без «\G» автоматы плохо стыкуются с регулярками. Не могли PCRE что ли взять? Зачем одноколёсный велосипед было писать?

Пятиминутка адского гнева. Нет, я не хочу поговорить об этом. Но если где-то есть пайтонячья рекурсия в регулярке, покажите рабочий пример, хоть погляжу как это делается.

Вдох-выход.

Комментарии 16

almalinka.blogspot.com № 3
М, а без регулярных выражений не обойтись?
Евгений Степанищев (bolknote.ru) автор № 4
Обойтись. В тексте не зря упомянуты конечные автоматы. Без многого можно обойтись. Но на регулярках это одна строчка, а тут уже 40 и это ещё не конец.
almalinka.blogspot.com № 5
Комментарий для Евгения Степанищева:

Бытует мнение, что регулярки выолняются медленнее, чем рукопашный анализ. Не всегда.
Евгений Степанищев (bolknote.ru) автор № 6
Комментарий для almalinka.blogspot.com:

Я придерживаюсь мнения, что иногда совершенно все равно какова скорость. В данном случае это как раз тот случай.
baka.name № 7

Комментарий для almalinka.blogspot.com:

Бытует мнение, что регулярки выолняются медленнее, чем рукопашный анализ.

Мне казалось, что распространено другое мнение — что-то, встроенное в язык, выполняется обычно быстрее, чем реализованное на нём же.

Не всегда

Ага. Не все читали Фридла, поэтому большинство не умеет писать эффективные регулярные выражения.
А некоторые читали и даже что-то поняли (я себя пока к полностью понявшим не отношу ^_^).

alexeyten (alexeyten.ya.ru) № 8
Комментарий для Евгения Степанищева:

http://www.lua.org/manual/5.1/manual.html#5.4.1

Мало того, что они обратный слеш заменили на процент. Так у них ещё и дефис волшебный символ и нет пайпа для альтернативных шаблонов.

Я, например, до сих пор не знаю как написать на нём обычный «^(foo|bar)$»
Евгений Степанищев (bolknote.ru) автор № 9
Комментарий для alexeyten.ya.ru:

По мне так очень бедный и неудобный синтаксис.
jankkhvej.blogspot.com № 10
Ещё ДеМарко писал о том, что нет зависимости от языка программирования и качества конечного продукта. Поэтому почему собственно питон? Встройте перл?
Евгений Степанищев (bolknote.ru) автор № 11
Встроить Перл куда? Я не понял замечания.

Я пишу о том, что в Python зачем-то написали свои регулярки, вместо того, чтобы подключить libpcre.
alexeyten (alexeyten.ya.ru) № 13
Комментарий для Евгения Степанищева:

По мне тоже, но lua встроен в lighttpd и xscript, так что приходиться есть кактус…
Евгений Степанищев (bolknote.ru) автор № 14
Комментарий для jankkhvej.blogspot.com:

Там не такой здоровый проект, чтобы позволить ему ещё и Perl внутри иметь. А модуля PCRE под Python я что-то не нагуглил. Он есть вообще? Биндинг писать в рамках этого проекта слишком затратно.
Евгений Степанищев (bolknote.ru) автор № 15
Комментарий для alexeyten.ya.ru:

Если «лайти» ещё можно заменить, что xscript… увы :)
jankkhvej.blogspot.com № 16
Ну я на питоне ничего не пишу, и никогда не интересовался, так что наверное меня слушать не надо :)