Maximal munch(最长匹配原则):在词法分析(把字符流切分成“词/Token”)中,规则是每一步都尽量匹配当前输入中“能匹配的最长字符串”,从而决定读入多少字符并生成哪个词法单元。常用于编译器、解释器与正则匹配驱动的分词器中。
The lexer uses maximal munch to pick the longest valid token.
词法分析器使用最长匹配原则来选择最长的有效词法单元。
Without maximal munch, the scanner might split “>=” into “>” and “=”, causing parsing errors.
如果不采用最长匹配原则,扫描器可能把“>=”拆成“>”和“=”,从而导致语法分析出错。
/ˈmæksɪməl mʌntʃ/
maximal 来自拉丁语 maximus(“最大的”);munch 原意是“咀嚼、啃”,在这里是一个形象化说法:分词器像“咬一口”那样,每次都尽可能“咬下”最长的一段输入。因此 maximal munch 字面可理解为“尽量咬最大一口”,对应“最长匹配”。