这是我生产代码的第一个正则表达式,直到现在我总是避免自己编写它们,现在我有点担心它是否真的像预期的那样工作.我试图打破它做了很多尝试,但我真的不想依赖它,特别是当我没有经验时.
我的正则表达式应该与此模式完全匹配
K,C,M,X,S,W0-9- A-Z或0-9)(不区分大小写)和A-Z)(不区分大小写).就是这样.它不能短,它不能长,它必须完全匹配这种模式.我现在拥有的是:
string RegExPattern = @"^(K|C|M|X|S|W){1}[0-9]{1}[-]{1}[A-Z0-9]{4}[A-Z]{1}$";
if (!Regex.IsMatch(txtCode.Text, RegExPattern, RegexOptions.IgnoreCase))
{
MessageBox.Show("Fail");
return false;
}
Run Code Online (Sandbox Code Playgroud)
是否有任何工具,或其他方式来验证正则表达式的行为,这个正则表达式是否正确我上面解释的匹配模式?
对,那是正确的.
但是,所有这些{1}都是多余的,您可以创建一组使用|运算符的第一个字符,并且您不需要为破折号设置:
string RegExPattern = @"^[KCMXSW][0-9]-[A-Z0-9]{4}[A-Z]$";
Run Code Online (Sandbox Code Playgroud)
有用于编写和测试正则表达式的工具,但是您只能使用它们来测试您能想到的输入中的任何变体,而且您似乎已经这样做了.