我需要在PyParsing中为整数定义一个规则,如下所示:
import pyparsing
plusorminus = pyparsing.Literal('+') | pyparsing.Literal('-')
number = pyparsing.Word(pyparsing.nums)
hexdecimal = pyparsing.Word(pyparsing.hexnums)
decimal = pyparsing.Combine(pyparsing.Optional(plusorminus) + number)
integer = pyparsing.Combine(pyparsing.Optional(plusorminus) + ((pyparsing.CaselessLiteral('0x') + hexdecimal) |number)).addParseAction(lambda toks: int(toks[0], 0))问题在于尾随(非数字),例如数字和字母:
integer.parseString('123a').pprint()不返回错误吗?
发布于 2017-03-14 09:03:48
当调用parsestring时,给它参数parseAll=True。因此
integer.parseString('123a', parseAll=True).pprint()抛出一个异常。
如果您希望语法要求成功地解析整个输入字符串,那么将pyparsing解析文档设置为True。
https://stackoverflow.com/questions/42778896
复制相似问题