Интересно, что я делаю неправильно здесь. Может быть, кто-то может дать мне намек на эту проблему. Я хочу обнаружить определенные маркеры, используя pyparsing, которые заканчиваются строкой _Init
.Pyparsing: обнаружение жетонов с определенным концом
В качестве примера, я следующие строки хранятся в text
one
two_Init
threeInit
four_foo_Init
five_foo_bar_Init
Я хочу, чтобы извлечь следующие строки:
two_Init
four_foo_Init
five_foo_bar_Init
В настоящее время, я сократил свою задачу следующим направлениям:
import pyparsing as pp
ident = pp.Word(pp.alphas, pp.alphanums + "_")
ident_init = pp.Combine(ident + pp.Literal("_Init"))
for detected, s, e in ident_init.scanString(text):
print detected
Использование этого кода не имеет результатов. Если я удалю "_"
в инструкции Word
, то я могу обнаружить, по крайней мере, линии, имеющие _Init
на своих концах. Но результат не завершен:
['two_Init']
['foo_Init']
['bar_Init']
У кого-нибудь есть идеи, что я делаю совершенно неправильно здесь?