如何使用RegEx省略注释行

时间:2009-07-02 06:59:27

标签: visual-studio regex

有人可以告诉我在Visual Studio中使用正则表达式时如何避免使用注释行吗?我试过^[^//]*,但它无法正常工作。

例如,我想在搜索时省略以下行:

//Hello

2 个答案:

答案 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*(?!//).*