Pyparsing:MatchFirst、Or 和 oneOf 之间的区别

标签 pyparsing

在Pyparsing中,MatchFirst、Or和oneOf有什么区别

当字符串中有共享字符时

字,字,字

或(['单词','措辞','单词'])

MatchFirst(['word', 'wording', 'words'])

oneOf(['word', 'wording', 'words'])

最佳答案

来自在线文档 ( https://pythonhosted.org/pyparsing/ )

  • MatchFirst - 如果两个表达式匹配,则列出的第一个是匹配的。
  • Or - 如果两个表达式匹配,将使用匹配最长字符串的表达式。
  • oneOf - Helper 快速定义一组替代文字,并确保在发生冲突时进行最长优先测试,无论输入顺序如何,但返回 MatchFirst 以获得最佳性能。
  • MatchFirst使用其构造函数中的每个字符串测试当前解析位置,在第一个匹配的位置处停止。
    Or针对其构造函数中给出的所有字符串测试当前解析位置,并将返回最长的匹配项。
    oneOf生成 RegexMatchFirst匹配最长的匹配,通过在有共同起始字符串的替代项时重新排序输入列表来首先测试较长的字符串。

    关于Pyparsing:MatchFirst、Or 和 oneOf 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358037/

    相关文章:

    python - 调试 Pyparsing 语法

    Pyparsing - 名称不以字符开头

    python - 在 PyParsing 中,如何定义一个 setParseAction 函数来将字符串列表转换为整数列表?

    python - 如何使用 pyparsing 解析此列表?

    python - 如何使用 pyparsing LineStart?

    python - 解析 pyparsing 组混合字符单词

    Python Pyparsing : Capture comma-separated list inside parentheses ignoring inner parentheses

    python - 使用 pyparsing 解析带后缀的表达式

    python - 从多个标记的字符串构建 pyparsing.Dict - 第二部分