如何在C中REGEX //?单行注释

我使用以下内容使其部分工作:
        %{
        #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 * /这样的评论。     
可能是它的晚了。但我发现这更适合使用
/[/]+.*
这将涵盖双斜线和更多,然后文本的其余部分。 以下是regex101.com的解释
/ 
匹配字符
/
字面(区分大小写)匹配文本中的单个字符
[/]+
+
量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)
/
与字符
/
字面匹配(区分大小写)
.*
匹配任何字符(行终止符除外)     
为什么你不能写
"//"|"/*"    {return(COMMENT);}
?     

要回复问题请先登录注册