gpt4 book ai didi

c - 如何在 C 中使用正则表达式//?单行注释

转载 作者:行者123 更新时间:2023-12-02 01:20:27 24 4
gpt4 key购买 nike

我使用以下方法让它部分工作:

        %{
#define OR 2

#define AND 3
.........
.........
%}

delim [ \t]
ws {delim}*
letter [A-Za-z]
digit [0-9]
comments [/]+({letter}|{digit}|{delim})*

%%

{comments} {return(COMMENT);}
......................
......................
%%
int main()
{
int tkn = 0;
while (tkn = yylex())
{
switch (tkn)
{

case COMMENT:
printf("GOT COMMENT");
}
}
}

这工作正常。问题是正则表达式显然无法识别特殊字符,因为 [/]+({letter}|{digit}|{delim})* 不考虑特殊字符。如何更改正则表达式以容纳更多字符直到行尾?

最佳答案

你不能直接使用

[/]+.*

它将匹配一定数量的/,然后是任何内容,直到行尾。当然,这不包括像 /* COMMENT */ 这样的注释。

关于c - 如何在 C 中使用正则表达式//?单行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577282/

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