我想解析多行注释,但它总是很贪婪。
正则表达式:
MUL_COMMENT ("#*"(.|\n)*?"*#")
flex 文件片段:
<DIRECTIVE>{MUL_COMMENT} {BEGIN INITIAL;
printf("mul comment for directive end:%s\n",yytext);yylval.string = strdup(yytext); return COMMENT;}
文本文件:
#*erewrewrewr
wer*#
#set( $a=7)
#*#ere
wrewrewrwe*#
解析结果:
Node:astn=Comment,image:"#*erewrewrewr\nwer*#\n\n#set( $a=7)\n\n#*#ere\nwrewrewrwe*#"
mul comment for directive end:#*erewrewrewr
wer*#
#set( $a=7)
#*#ere
wrewrewrwe*#
图片是他的字符串匹配,显然他很贪心!如何解决它,请帮助我!