我们要清楚我正在谈论词汇分析工具。
对于以下输入:
aa bb cc dd
我需要解析器匹配以下子字符串:
aa bb
bb cc
cc dd
我有这个正则表达式:
[a-zA-Z]+[ ]+[a-zA-Z]+
但这只匹配:
aa bb
cc dd
我被告知REJECT命令可用于获取我需要的输出,但我不知道如何应用它。有人可以帮我一把吗?
答案 0 :(得分:-1)
您可以使用正则表达式在整个集合中枚举n和n + 1对。
查看具有“贪婪”向后(或向前)匹配的分组。
答案 1 :(得分:-1)
这是针对该问题的一个Flex解决方案:
%% "aa bb" {printf( "matched aa bb\n");REJECT;} "bb cc" {printf( "matched bb cc\n");REJECT;} "cc dd" {printf( "matched cc dd\n");REJECT;} . /*ignore anything else*/ %% int main() { yylex(); return 0; } When I run the code on your input I get : matched aa bb matched bb cc matched cc dd