下打印“通行证”:StringEnd()引发异常,当匹配失败 - PyParsing
pattern = Word(alphanums) + StringEnd()
str=" bar "
results = pattern.parseString(str)
if 1 == len(results) && "bar" == results[0] :
print("pass")
else:
print("fail")
但这罚球和中class StringEnd
parseImpl
(例外的字符以下的“酒吧”“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)
我希望第2/3 rd parseString调用只返回一个空数组,因为它显然不满足语法。
任何人都可以帮我理解为什么吗?
(应该是显而易见的,但运行,你会“从pyparsing进口*”需要;也是我在python3.2和pyparsing 1.5.6)
究竟抛出了什么异常? – catchmeifyoutry 2012-07-18 17:29:03
@catchmeifyoutry它会抛出一个'ParseException',在'0123'后面的字符'r'中 – mike 2012-07-18 18:05:05