Python 类似于pyparsing中的optionalQuotedString?

Python 类似于pyparsing中的optionalQuotedString?,python,parsing,pyparsing,Python,Parsing,Pyparsing,在我的解析器中,我多次出现 expression = quotedString(pattern) | Word(pattern) 我想知道我是否错过了一些内置类,或者我是否自己定义了它。在第二种情况下,最好的选择是什么?您的意思是这样的: def quotedStringOrWord(pattern): return quotedString(pattern) | Word(pattern) 旧线程我知道,但您可以在其他表达式中重用您的表达式 optionalQuotedString

在我的解析器中,我多次出现

expression = quotedString(pattern) | Word(pattern)

我想知道我是否错过了一些内置类,或者我是否自己定义了它。在第二种情况下,最好的选择是什么?

您的意思是这样的:

def quotedStringOrWord(pattern):
    return quotedString(pattern) | Word(pattern)

旧线程我知道,但您可以在其他表达式中重用您的表达式

optionalQuotedString = QuotedString(pattern) | Word(pattern)

expression1 = optionalQuotedString
expression2 = Literal('>') + optionalQuotedString

可能比函数更简洁,但功能相同。

很抱歉代码格式不正确,我以为我添加了四个空格…?您可以随时提问并修复格式错误。您可能需要重新检查语法
quotedString('xyzy')
将解析任何单引号或双引号字符串,并将该字符串作为标记返回,结果名为'xyzy'(与re中的命名组类似)-此表达式的解析与字符串'xyzy'无关
Word('xyzy')
将解析由x、y和z组成的任何单词,即“xyzy”中唯一的一组字母。Word的参数是包含有效Word字符的字符串。或者您可以传递两个字符串,其中第一个字符串是有效的初始字符集,第二个是有效的正文字符集。@PaulMcGuire很好!谢天谢地,我现在只需要改变J.F.Sebastian函数。我想我应该使用Forward。是的,一个简单的函数可能就是我想要的。