Татсу -анализ - как пропустить до тех пор, пока не использует конкретное слово, используя правило?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Татсу -анализ - как пропустить до тех пор, пока не использует конкретное слово, используя правило?

Сообщение Anonymous »

Есть ли элегантный способ пропустить ввод до тех пор, пока конкретное слово использует tatsu , не полагаясь на необработанное повторное выражение?
Например, я могу сделать:
start=/(.|\n)*?John/
< /code>
Но я бы хотел написать его, используя правильные правила грамматики, что -то вроде: < /p>
start = skip_until('John').
< /code>
Я попытался определить правила, но не смог заставить его работать. Я хочу соответствовать нескольким именам < /strong> (например, «Джон», «Анна» и т. Д.), Которые могут появиться после произвольного текста (включая новички). < /P>
Вот код, который я хочу улучшить.

есть более модульный способ сделать это в Tatsu?from tatsu import compile

grammar = '''
start = /(.|\n)*?John/ ;
'''

model = compile(grammar)
text = """Some random text
on multiple lines
before John."""

ast = model.parse(text)
print(ast)


Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-a-rule
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»