首页 > 解决方案 > 消除 Lex 代码中数字之间的字符

问题描述

如何消除 lex 代码中两个或多个整数之间的字符?

例如:12bd35

输出:12 35

标签: flex-lexerlex

解决方案


Lex 构建词法分析器,旨在将输入拆分为单独的标记。一旦识别出一个标记,就可以忽略它,这有点类似于“消除字符”。但你总是需要认出它们。

因此,您可以从以下极简扫描仪开始:

%option noinput nounput noyywrap
%%
[[:digit:]]+  { ECHO; fputc(' ', yyout); } /* print numbers.
[^[:digit:]]+ ;    /* ignore everything else. */

然后修改它以适应您的实际需要。


推荐阅读