我想解析多行注释,但它总是很贪婪。
正则表达式:
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*#图片是他的字符串匹配,显然他是贪心的!怎么修复,请帮帮我!
发布于 2013-05-23 10:46:34
通常的方法是在你的评论中不匹配*#:
MUL_COMMENT "#*"([*]*[^*#]|[#])*"*#"https://stackoverflow.com/questions/16689155
复制相似问题