2014-10-22 60 views
0

我有很多代码,并希望找到并替换它中的一些文本。我想要替换所有匹配,但不包括那些在评论中的匹配。假设我想在代码中查找并替换字符串“text”。例如:正则表达式的注释

Console.WriteLine("text"); // must be replaced 
// some text /* does not need to be replaced because this string begins from "//" */ 

不幸的是,我不知道如何用正则表达式来做到这一点。有人能帮助我吗?

+0

会是什么在第二行输出? – vks 2014-10-22 08:43:04

+0

第二行未找到。正则表达式我想得到不匹配第二行中的“文本” – Itsme 2014-10-22 08:48:06

+0

您正在使用哪个工具? – nhahtdh 2014-10-22 08:55:37

回答

-1
^[^\/]+(\/\/.*)\n 

我想这应该满足您的需求

+0

以便它可以分别捕获每一行 – Vajura 2014-10-22 09:01:29

+0

您错过了这一点。 OP想要替换'text',而不是带注释的行。 – nhahtdh 2014-10-22 09:10:07

0

按要求严格走出去“发现text除非//\n包围”,这将是使用,只处理捕获组1的正则表达式。但是请注意(就像我在评论中所说的那样)字符串内的注释分隔符没有被计算在内,如debuggex demo中的第3行所示。 nhahtdh是正确的,说替换回调函数是这里的方法,然后你可以捕获任何字符串并在回调中进一步调查。

\/\/[^\n]*(?:\n|$)|(text) 

Regular expression visualization

Debuggex Demo