Я хочу совместить слово, которое заканчивается на _foo
или _bar
. Я написал это:Нежелательное совпадение Слова в pyparsing?
identifier = Word(alphanums + '_')
string = identifier + Suppress('_') + oneOf('foo bar')
К сожалению, я понял identifier
жаден и потребляют все ключевые слова.
Как я могу заставить identifier
не жадничать?
$ string.parseString('a_keyword_foo')
ParseException: Expected "_" (at char 13), (line:1, col:14)
Некоторые допустимые ключевые слова:
a_keyword_foo # ['a_keyword', 'foo']
foo_bar_foo # ['foo_bar', 'foo']
bar_bar # ['bar', 'bar']
Некоторые недействительные ключевые слова:
keyword_foo_foobar
2keywords_bar # The leading number is perhaps another question...
foo _bar
_foo
Нежелательное соответствие обсуждается по адресу: http://stackoverflow.com/questions/15938540/pyparsing-non-greedy-match. Удачи! – Jurgenfd
@ Jurgenfd, я прочитал это. Что я упустил? – nowox