c#中的正则表达式否定前瞻

时间:2011-02-22 17:20:13

标签: c# regex visual-studio-2010 regex-negation

我需要匹配["this"而不是:["this"

我有这段代码:

        Match match = Regex.Match(result, @"\[""(.*?)""",
            RegexOptions.IgnoreCase);

        while (match.Success)
        {
            MessageBox.Show(match.Groups[1].Value.Trim());
        }

我尝试过模式@"(?!:)\[""(.*?)""",但它仍匹配:["this"。什么样的模式我需要实现这个目标?

3 个答案:

答案 0 :(得分:5)

当你想要向后看时(在字符串中向左),你正在向前看(在字符串中向右)。

请尝试@"(?<!:)\[""(.*?)"""

答案 1 :(得分:3)

我使用RegexBuddy(我喜欢该应用程序)设置为.NET并获得以下表达式:

@"(?<!:)\[""(.*?)"""

答案 2 :(得分:2)

当你应该做一个消极的 lookbehind 时,你做了一个负面的预测。试试这个:

Match match = Regex.Match(result, @"(?<!:)\[""(.*?)""", RegexOptions.IgnoreCase);