如何在flex(词法分析器)中启用最短匹配规则?

Vil*_*mes 8 match shortest flex-lexer

默认情况下,flex使用最长匹配规则.有没有办法覆盖这种行为,使其匹配最短的序列?

谢谢

Mat*_*dge 2

Flex 手册中的这一页说它没有任何非贪婪运算符,因为它是扫描器而不是解析器,并建议可以使用正则表达式来添加缺少的功能。

  • 我并不是指贪婪的运算符本身。如果您有完全独立的正则表达式,两者都匹配某个字符串的相同前缀,那么词法分析器默认会选择最长的一个。我需要的是让它拾取较短的一个,重置,然后再次开始匹配。 (2认同)