作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下方法让它部分工作:
%{
#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/
我是一名优秀的程序员,十分优秀!