Skip to main content
 首页 » 编程设计

C# 正则表达式总是返回 FALSE

2024年02月06日32emanlee

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# 中使用 @(逐字字符串)来完成它:

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