c#正则表达式问题

时间:2012-12-05 23:13:55

标签: c# regex

我想知道为什么,通过以下输入,函数IsMatches返回false。 我的模式有什么问题。非常感谢。

var input = @"/****** Object:  Table [etc_abc]    Script Date: 11/27/2012 13:24:26 ******/";

    public bool IsMatched(string input)
    {
        var match = Regex.Match(input, @"/\*+\sObject:\s+Table\s+[\[[a-zA-Z0-9_\\]+\]\.]??(\[[a-zA-Z0-9_\\]+\])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
        return match.Success;
    }

1 个答案:

答案 0 :(得分:1)

我特别不了解C#正则表达式,但这部分看起来很可疑:[\[[a-zA-Z0-9_\\]+\]\.]??

您不希望将此视为字符类,您可能希望将其视为一个组,因此请使用简单的括号而不是方括号:(\[[a-zA-Z0-9_\\]+\]\.)??

所以这可能对您有用:@"/\*+\sObject:\s+Table\s+(\[[a-zA-Z0-9_\\]+\]\.)??(\[[a-zA-Z0-9_\\]+\])"