首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么贪婪的正则表达式--如何支持多行模式?

为什么贪婪的正则表达式--如何支持多行模式?
EN

Stack Overflow用户
提问于 2013-05-22 18:13:55
回答 1查看 65关注 0票数 0

我想解析多行注释,但它总是很贪婪。

正则表达式:

代码语言:javascript
复制
MUL_COMMENT ("#*"(.|\n)*?"*#")

flex文件片段:

代码语言:javascript
复制
<DIRECTIVE>{MUL_COMMENT} {BEGIN INITIAL;
    printf("mul comment for directive end:%s\n",yytext);yylval.string = strdup(yytext); return COMMENT;}

文本文件:

代码语言:javascript
复制
#*erewrewrewr
wer*#

#set( $a=7)

#*#ere
wrewrewrwe*#

解析结果:

代码语言:javascript
复制
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*#

图片是他的字符串匹配,显然他是贪心的!怎么修复,请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2013-05-23 10:46:34

通常的方法是在你的评论中不匹配*#

代码语言:javascript
复制
MUL_COMMENT    "#*"([*]*[^*#]|[#])*"*#"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16689155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档