如何在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})*
不考虑特殊字符。如何更改正则表达式以容纳更多字符直到行尾?
没有找到相关结果
已邀请:
3 个回复
糖固傻染
它将匹配一些/然后任何东西直到行尾。当然,这不会涵盖像/ * COMMENT * /这样的评论。
豆兢
这将涵盖双斜线和更多,然后文本的其余部分。 以下是regex101.com的解释
匹配字符
字面(区分大小写)匹配文本中的单个字符
量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)
与字符
字面匹配(区分大小写)
匹配任何字符(行终止符除外)
犀寺扦
?