C#正则表达式始终返回FALSE

时间:2014-07-14 22:08:05

标签: c# regex

regexPattern="\w{6}(AAAAA|BBBBB|CCCCC)"  

我需要下面的字符串才能返回TRUE。因此,任何6个字母后跟AAAAA或BBBBB或CCCCC:

TXCDTLAAAAA000
TXCDTLBBBBB111
TXCDTLCCCCC222

但是给出上面的模式我总是得到一个假的回报。如何修复此模式才能正常工作?

所以基本上这段代码正在运行:

    if (Regex.IsMatch("123456BBBBB", @"\w{6}(AAAAA|BBBBB|CCCCC)"))
    {
        //true
    }

所以我现在正在修复代码 谢谢!

1 个答案:

答案 0 :(得分:4)

您没有提到您使用的是哪种宿主语言,但反斜杠通常是双引号字符串中的转义字符,因此如果它是一种通用语言,则可能需要双反斜杠

 regexPattern="\\w{6}(AAAAA|BBBBB|CCCCC)" 

或者使用其他方式表达不需要转义字符的模式。例如,在Python中,您可以为原始字符串添加前缀:

 regexPattern = r"\w{6}(AAAAA|BBBBB|CCCCC)"

尽管Python不会将\ w视为转义序列,但它会对其他人有所帮助。

使用C#使用@(逐字字符串)来完成它:

 var regexPattern = @"\w{6}(AAAAA|BBBBB|CCCCC)";