Как рекурсивный regexp может быть реализован в Python?

рычаг и слушатель метод обычно используется, но существуют другие вещи, которые можно сделать. В зависимости от размера Вашего приложения, и то, кто Ваша попытка позволить видит код (эта попытка быть сценарием FOSS или чем-то в доме), будет влиять значительно, как Вы хотите позволить плагины.

kdeloach имеет хороший пример, но его функция реализации и рычага немного небезопасна. Я попросил бы Вас давать больше информации природы php приложения Ваша запись, И как Вы видите, что плагины вписываются.

+1 к kdeloach от меня.

14
задан ThomasH 1 May 2011 в 09:11
поделиться

3 ответа

Вы можете использовать pyparsing

#!/usr/bin/env python
from pyparsing import nestedExpr
import sys
astring=sys.argv[1]
if not astring.startswith('('):
    astring='('+astring+')'

expr = nestedExpr('(', ')')
result=expr.parseString(astring).asList()[0]
print(result)

Запуск дает:

% test.py "foo(bar(bar(foo)))(foo1)bar1"
['foo', ['bar', ['bar', ['foo']]], ['foo1'], 'bar1']
15
ответ дан 1 December 2019 в 08:17
поделиться

Вы не можете сделать это с помощью регулярного выражения. Python не поддерживает рекурсивное регулярное выражение

4
ответ дан 1 December 2019 в 08:17
поделиться

К сожалению, я не думаю, что регулярные выражения Python поддерживают рекурсивные шаблоны.

Вы, вероятно, можете проанализировать это с помощью чего-то вроде pyparsing: http://pyparsing.wikispaces.com/

]
3
ответ дан 1 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: