2015-11-04 65 views
0

我想查找以//开头的所有评论实例,但我想排除所有类似http://的网址。正则表达式,不包括超模

如何使用正则表达式来做到这一点?

((?!http:)//).*\n // This does not work as URLs are still matched. 
+1

我想你可以使用'(?<!:)//.*'。你的正规口味是什么? –

+0

@stribizhev是的,似乎工作。这是否定的后视? – Ben

+0

崇高的文字3 - 无论是什么味道... – Ben

回答

1

(?!...)是负的样子提前如果后面没有);您需要后面的,如果没有前面):(?<!...)

2

我想找到的意见所有实例开始//

为什么你就不能使用^//还是我失去了一些东西?您可以使用^\s+//来解决您可能遇到的任何空白。

好的。我明白你说什么,但在这种情况下,你可以做这样的:

(^|[^:]|\s+)(\/\/.*) 

在上面,你只要确保//:之前。尽可能简单。另外请确保您替换包括第一组,以防止任何数据丢失。

像:$1replacement_term_here

Regex101

+0

因为你的正则表达式无法匹配'function foo(){} //我的评论'我的原始问题可能不清楚 – Ben

+0

@BenAston检查我的编辑出 –

+0

这个正则表达式也会匹配前面的字符(也就是':'或'\ s') 。也就是说,如果你用'foo(){} // bar'中的一个空字符串替换匹配,你会得到'foo(){':最后一个'}'也将被删除。我相信一个更好的背后更适合OP的需求 – sp00m