首页 > 解决方案 > 处理弹性空间的问题

问题描述

我正在尝试制作一个 flex 程序,删除一行开头和结尾的所有空格,并将多个空格转换为 1 个空格。这是我想出的代码规则:

%% 
^[[:space:]]+ {}
[[:space:]]+$ {printf("\n");}
[[:space:]]+ {printf(" ");}
%%

为了测试这一点,我一直在使用 notepad++ 来检查字符是否正确更改。Notepad++ 将换行标识为 CR LF(我不知道这个词及其含义),但在执行第二条规则后,结果是 \n 变为 LF 而不是 CR LF,导致以下规则意外工作。

您知道为什么会发生这种情况以及如何解决吗?提前致谢

标签: bisonflex-lexer

解决方案


推荐阅读