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

标签 c# regex

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)";

关于C# 正则表达式总是返回 FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746826/

相关文章:

java - java 和 android 之间 java.util.regex.Matcher 中 usePattern() 的不同使得这个任务变得困难

c# - 带 float 的无限循环

c# - SSH.Net库和通配符的使用

c# - .net:DLL 与 EXE 的版本号?

c# - 从 C# 中的 Assembly.LoadFrom() 返回对象

C# Linq 有四个表和一个并不总是需要的外键

ios - 使用正则表达式的 Xcode/swift 密码验证

javascript - 在输入中每第 4 个字符后插入破折号

regex - mksquashfs 不排除文件

javascript - 为什么这个正则表达式返回这样的数组