flex-lexer - 消除 Lex 代码中数字之间的字符
问题描述
如何消除 lex 代码中两个或多个整数之间的字符?
例如:12bd35
输出:12 35
解决方案
Lex 构建词法分析器,旨在将输入拆分为单独的标记。一旦识别出一个标记,就可以忽略它,这有点类似于“消除字符”。但你总是需要认出它们。
因此,您可以从以下极简扫描仪开始:
%option noinput nounput noyywrap
%%
[[:digit:]]+ { ECHO; fputc(' ', yyout); } /* print numbers.
[^[:digit:]]+ ; /* ignore everything else. */
然后修改它以适应您的实际需要。
推荐阅读
- php - PHP和HTML检查用户名是否在数据库中
- android - 如何正确设置多行文本视图的动画(展开和折叠)
- android - 如果没有消息,MessageQueue 怎么知道阻塞多长时间?
- scala - 在 scala List :: 中不进行隐式转换
- java - 使用 Map 与 Enum
- javascript - 我们可以使用 html 标签和 css 来为 openlayers 中的功能设置样式吗?
- angular - 从另一个页面推送时,Angular Nativescript RadListView 不更新
- c# - 我可以结合重试和后备 Polly 弹性策略吗?
- wpf - 为什么在 wpf 的活动网格视图中从公共列表控件添加项目时所有网格视图都会更新?
- regex - 在 Windows 上使用 SED 扩展 makefile 中的路径变量