Извлечение подстроки переменной длины с помощью pyparsing - PullRequest
1 голос
/ 19 июля 2011

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

Следующее почти работает, но теряет последнее слово подстроки:

text = "Joe F Bloggs is the author of this book."
author = OneOrMore(Word(alphas) + ~Literal("is the"))

print author.parseString(text)

Выход:

['Joe', 'F']

Чего мне не хватает?

PS: я знаю, что могу сделать это с помощью регулярного выражения, но определенно хочу сделать это с помощью pyparsing, потому что это требует больших усилий, уже написанных с использованием pyparsing.

1 Ответ

1 голос
/ 19 июля 2011

Ваш негативный взгляд должен идти перед фактическим словом автора:

>>> author = OneOrMore(~Literal("is the") + Word(alphas))
>>> print author.parseString(text)
['Joe', 'F', 'Bloggs']
...