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

10

默认情况下,flex使用最长匹配规则。是否有任何方法可以覆盖此行为,使其匹配最短序列?

谢谢


不,如果你有它的话也不会想要它。例如,许多词法分析器(如果不是大部分)都以一个万能规则结尾 . return yytext[0];。那将成为唯一起作用的规则。 - user207421
1个回答

2
这篇Flex手册中的页面指出它没有非贪婪操作符,因为它是一个扫描器而不是解析器,并建议使用正则表达式来添加缺失的功能。请参考此页

2
我并不是指贪婪操作符本身。如果你有完全独立的正则表达式,都匹配某个字符串前缀,那么词法分析器默认会选择最长的那个。我需要的是让它选择更短的那个,重新开始匹配。 - VilleDePommes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接