加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何在LEX / FLEX中编写非贪婪匹配?

发布时间:2020-12-13 22:56:23 所属栏目:百科 来源:网络整理
导读:我正在使用FLEX和BISON来解析传统语言(类似于’C’).除了匹配的字符串之外,一切都很好. 这种相当奇怪的遗留语言不支持在字符串文字中引用字符,因此以下是所有有效的字符串文字: "hello""""" 我使用以下规则来匹配字符串文字: ".*" { yylval.strval = _s
我正在使用FLEX和BISON来解析传统语言(类似于’C’).除了匹配的字符串之外,一切都很好.

这种相当奇怪的遗留语言不支持在字符串文字中引用字符,因此以下是所有有效的字符串文字:

"hello"
""
""

我使用以下规则来匹配字符串文字:

".*"            { yylval.strval = _strdup( yytext ); return LIT_STRING; }

不幸的是,这是一个贪心的比赛,所以它匹配如下的代码:

"hello","world"

作为一个单一的字符串(你好,“世界”).

通常的非贪心量词.*?在FLEX中似乎不起作用.有任何想法吗?

只是禁止在引号之间引用一个引号.
"[^"]*"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读