繁体   English   中英

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

[英]C# Regular Expression always returns FALSE

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

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

TXCDTLAAAAA000
TXCDTLBBBBB111
TXCDTLCCCCC222

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

因此,基本上这段代码可以正常工作:

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

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

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

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

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

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

尽管Python无论如何都不会将\\ w当作转义序列,但是它将对其他人有所帮助。

使用C#时,请使用@(verbatim字符串):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM