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/