c# - 验证我的正则表达式是否按预期工作

标签 c# regex

这是我的第一个用于生产代码的正则表达式,直到现在我一直避免自己编写它们,现在我有点担心它是否真的像预期的那样工作。我做了很多尝试试图破解它,但我真的不想依赖这个,尤其是当我的经验为零时。

我的正则表达式应该与这个模式完全匹配

  • 第一个字符必须是字母之一(不区分大小写)- K,C,M,X,S,W
  • 第二个字符必须是 0-9
  • 中的数字
  • 一个连字符 -
  • 4 个字母数字字符(A-Z0-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/

相关文章:

Python 多行正则表达式分隔符

regex - Grep Perl 正则表达式和捕获组

javascript - jQuery/Javascript 正则表达式错误,但可以工作

c# - 发现多个与请求 :*** 匹配的操作

javascript - 正则表达式:如何从 javascript 中的所有匹配项创建对象数组?

java - vaadin RegexpValidator 正则表达式

c# - 设置 Asp.Net Core MVC Json 选项

c# - WinRT - MessageDialog.ShowAsync 将在我的自定义类中抛出 UnauthorizedAccessException

c# - Entity Framework 核心: Multiple Relationships between Users and Organizations

c# - Linq 和排序依据