gpt4 book ai didi

c - flex/lex 中字符串文字的正则表达式

转载 作者:太空狗 更新时间:2023-10-29 16:18:44 25 4
gpt4 key购买 nike

我正在尝试学习 flex 并想匹配字符串文字。我的代码目前看起来像:

"\""([^\n\"\\]*(\\[.\n])*)*"\""        {/*matches string-literal*/;}

我已经为变体苦苦挣扎了一个小时左右,但无法让它按应有的方式工作。我基本上希望匹配不能包含换行符(除非它被转义)并支持转义字符的字符串文字。

我可能只是在写一个糟糕的正则表达式或者一个与 flex 不兼容的正则表达式。请指教!

最佳答案

一个字符串由一个引号组成

"

后跟零个或多个转义的任何内容

\\.

或非引号字符、非反斜杠字符

[^"\\]

最后是结束语

"

把它们放在一起,你就有了

\"(\\.|[^"\\])*\"

定界引号被转义,因为它们是 Flex 元字符。

关于c - flex/lex 中字符串文字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com