C#regexoptions.ignorecase似乎不起作用

时间:2010-10-14 15:33:07

标签: c# regex

使用以下代码:

string pat = @"ENGL101_.*_(.*)";
Regex r = new Regex(pat, RegexOptions.IgnoreCase);

件:   ENGL101_BELIEVE_WRIGHTSTONE.docx

但不是:   Engl101_ThisIBelieve_Williams.docx

IgnoreCase开启了 - 问题是什么?

3 个答案:

答案 0 :(得分:2)

我不能复制这个问题;两个字符串看起来都与表达式匹配。

[STAThread]
static void Main()
{
    string pat = @"ENGL101_.*_(.*)";
    Regex r = new Regex(pat, RegexOptions.IgnoreCase);

    Console.WriteLine(r.IsMatch(@"ENGL101_BELIEVE_WRIGHTSTONE.docx"));
    Console.WriteLine(r.IsMatch(@"Engl101_ThisIBelieve_Williams.docx"));
}

<强>输出:

True
True

问题一定是其他问题,或许?

答案 1 :(得分:0)

我知道这听起来很明显,但你尝试过与

匹配吗?
  

ENGl101_THISIBELIEVE_WILLIAMOS.docx

不忽视案例?

答案 2 :(得分:0)

无法重新编写 - 在Snippet Compiler中尝试并且:

    public static void RunSnippet()
    {
        string pat = @"ENGL101_.*_(.*)";
        Regex r = new Regex(pat, RegexOptions.IgnoreCase);

        Match m = r.Match("ENGL101_BELIEVE_WRIGHTSTONE.docx");

        WL(m.Success);

        m = r.Match("Engl101_ThisIBelieve_Williams.docx");

        WL(m.Success);
    }

返回

True  
True