lex编译原理如何匹配两个或两个以上的换行符(\n)
#define BLANK 21
#define BLANK2 22
delim [ \t\n]
ws {delim}+
\n\n {return BLANK2;}
{ws} {return BLANK;}
case BLANK2:fprintf(yyout,"2 ",yytext);break;
case BLANK:fprintf(yyout,"1 ",yytext);break;
然后我进行flex gcc运行:
./a.exe a.txt b.txt
a.txt 为
a
b
输出b.txt为
a1 1 b
可见a,txt中的ab间的两个换行\n\n BLANK2并没有匹配上 同时进行ws匹配时也并没有实现\n的多个匹配而是一个一个的单独匹配
请问如何实现\n\n的多个匹配 即多个\n匹配到一个表达式中只输出一个空格而不是多个空格。