【发布时间】:2017-05-22 00:14:33
【问题描述】:
我正在尝试编写正则表达式来查找给定文件中的所有 cmets。我应该处理的 cmets 是多线通信,例如
/* comments.
is multiline comment*/
或
// one liner comment.
我搜索了几个地方,并找到了一些答案。 (one answer) 我设法写了一些可以满足我大部分需求的东西:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|//.*\n?)
我的代码唯一有问题的是它在字符串中捕获了 cmets。例如
String str = " hey, // I'm not a comment "
我的代码得到“我不是评论”但它不应该。 我尝试了几种方法,例如negativelookahead 和lookbehind,但似乎没有任何效果。
有什么方法可以做我想做的事吗?/ 谢谢。
编辑: 我使用的语言是python
【问题讨论】:
-
在这种情况下,将 python 标签添加到您的问题中。
-
不要使用正则表达式来解析编程语言。正如您所注意到的,正则表达式无法做到这一点。这是一个硬性限制,没有变通方法,无论如何尝试这样做的每个解决方案都是不正确的。