有人可以告诉我在Visual Studio中使用正则表达式时如何避免使用注释行吗?我试过^[^//]*
,但它无法正常工作。
例如,我想在搜索时省略以下行:
//Hello
答案 0 :(得分:1)
这应该有效:
(:?//[^\n]*|/\*.*\*/)
更新添加了一些示例代码
使用System; 使用System.Text.RegularExpressions;
namespace ConsoleApplication {
class Program {
static void Main(string[] args) {
Regex commentsFilter = new Regex(@"(:?//[^\n]*|/\*.*\*/)");
string sample = ""
+ "a\n"
+ "//b\n"
+ "/*c*/\n"
+ "d";
string filteredSample = commentsFilter.Replace(sample, "");
string[] lines = filteredSample.Split('\n');
foreach (string line in lines) {
Console.WriteLine(line);
}
Console.ReadKey();
}
}
}
答案 1 :(得分:0)
您应该能够在Visual Studio中使用“防止匹配”语法“〜()”:
^~(//).*
也许您希望允许行开头的可选空格或制表符不匹配:
^:b~*(//).*
有关信息,〜()运算符是负前瞻断言,在传统的正则表达式语法(而不是VS)中,这将被写为:
^\s*(?!//).*