我试图编写正则表达式来查找给定文件中的所有注释。我应该处理的评论是multyline commnes,例如
/* comments.
is multiline comment*/
或
// one liner comment.
我在几个地方搜索过,找到了一些答案。 (one answer)我设法写出了满足我大部分需求的东西:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|//.*\n?)
我的代码唯一错误就是它捕获了字符串中的注释。例如
String str = " hey, // I'm not a comment "
我的代码得到了"我不是评论" 但不应该 我尝试了几件事,比如负面观察和后视,但似乎没什么用。
有没有办法做我想做的事?/ 感谢。
修改 我使用的语言是python
答案 0 :(得分:1)
通常,请考虑使用解析器(考虑嵌套注释等)。话虽这么说,你可以使用(*SKIP)(*FAIL)
构造,如果它支持(你没有指定你的编程语言):
"[^"]+"(*SKIP)(*FAIL)
|
'[^']+'(*SKIP)(*FAIL)
|
(?|
//(?P<comment>.+)
|
/\*(?P<comment>[\s\S]+?)\*/
)