在Pyparsing中,MatchFirst、Or和oneOf有什么区别
当字符串中有共享字符时
字,字,字
或(['单词','措辞','单词'])
MatchFirst(['word', 'wording', 'words'])
oneOf(['word', 'wording', 'words'])
最佳答案
来自在线文档 ( https://pythonhosted.org/pyparsing/ )
MatchFirst
- 如果两个表达式匹配,则列出的第一个是匹配的。 Or
- 如果两个表达式匹配,将使用匹配最长字符串的表达式。 oneOf
- Helper 快速定义一组替代文字,并确保在发生冲突时进行最长优先测试,无论输入顺序如何,但返回 MatchFirst 以获得最佳性能。 MatchFirst
使用其构造函数中的每个字符串测试当前解析位置,在第一个匹配的位置处停止。Or
针对其构造函数中给出的所有字符串测试当前解析位置,并将返回最长的匹配项。oneOf
生成 Regex
或 MatchFirst
匹配最长的匹配,通过在有共同起始字符串的替代项时重新排序输入列表来首先测试较长的字符串。
关于Pyparsing:MatchFirst、Or 和 oneOf 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358037/