Python 如何在pyparsing中禁止文本之间使用空格?
语法需要拒绝来自:mary的Python 如何在pyparsing中禁止文本之间使用空格?,python,pyparsing,Python,Pyparsing,语法需要拒绝来自:mary的,只接受来自:mary的,即没有任何交错空格。我如何在pyparsing中强制执行这一点?谢谢您能使用组合吗 grammar = Literal("from") + Literal(":") + Word(alphas) 那么: 编辑以回应您的评论 真的吗 grammar = Combine(Literal("from") + Literal(":") + Word(alphas)) 语法=pyparsing.Combine(Literal(“from”)+Lit
,只接受来自:mary
的,即没有任何交错空格。我如何在pyparsing中强制执行这一点?谢谢您能使用组合
吗
grammar = Literal("from") + Literal(":") + Word(alphas)
那么:
编辑以回应您的评论
真的吗
grammar = Combine(Literal("from") + Literal(":") + Word(alphas))
语法=pyparsing.Combine(Literal(“from”)+Literal(“:”)+单词(pyparsing.alphas))
>>>parseString('from:mary')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
parseString格式的文件“/usr/lib/pymodules/python2.6/pyparsing.py”,第1076行
加薪
pyparsing.ParseException:应为“:”(在字符4处),(第1行,第5列)
>>>parseString('from:mary')
(['from:mary'],{})
Combine
不会为来自:mary的抛出ParseException
。我希望抛出错误。另外,请阅读leaveWhitespace
方法以抑制特定表达式的空格跳过。对任何必须匹配且不跳过空格的表达式调用此方法,在本例中为“:”和包含名称的单词。
>>> grammar = pyparsing.Combine(Literal("from") + Literal(":") + Word(pyparsing.alphas))
>>> grammar.parseString('from : mary')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/pymodules/python2.6/pyparsing.py", line 1076, in parseString
raise exc
pyparsing.ParseException: Expected ":" (at char 4), (line:1, col:5)
>>> grammar.parseString('from:mary')
(['from:mary'], {})