以下打印“通过”:
pattern = Word(alphanums) + StringEnd()
str=" bar "
results = pattern.parseString(str)
if 1 == len(results) && "bar" == results[0] :
print("pass")
else:
print("fail")
但这会抛出异常(当 'bar' 中parseImpl
的class StringEnd
'r' 后面的字符不是字符串结尾时):
pattern = Word(alphanums) + StringEnd()
str=" bar foo "
results = pattern.parseString(str) # <-- exception raised
就像这样:
pattern = Word(alphanums)
str = " bar foo"
results = pattern.parseString(str,parseAll=True)
我希望第二/第三个 parseString 调用只返回一个空数组,因为它显然不能满足语法。
谁能帮我理解为什么?
(应该很明显,但要运行你需要'from pyparsing import *';我也在python3.2和pyparsing 1.5.6上)