这是我的第一个用于生产代码的正则表达式,直到现在我一直避免自己编写它们,现在我有点担心它是否真的像预期的那样工作。我做了很多尝试试图破解它,但我真的不想依赖这个,尤其是当我的经验为零时。
我的正则表达式应该与这个模式完全匹配
- 第一个字符必须是字母之一(不区分大小写)-
K,C,M,X,S,W
- 第二个字符必须是
0-9
中的数字
- 一个连字符
-
- 4 个字母数字字符(
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;
}
是否有任何工具或其他方法可以验证正则表达式的行为以及此正则表达式是否适合我上面解释的匹配模式?
最佳答案
是的,这是正确的。
但是,所有的 {1}
都是多余的,您可以使用 |
运算符来创建一组第一个字符,而不需要设置破折号:
string RegExPattern = @"^[KCMXSW][0-9]-[A-Z0-9]{4}[A-Z]$";
有用于编写和测试正则表达式的工具,但您只能使用它们来测试您能想到的输入的任何变化,而且您似乎已经做到了。
关于c# - 验证我的正则表达式是否按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498683/