.net - 正则表达式在正则表达式注释中不起作用
问题描述
我在 ViewModel 中使用正则表达式注释应用了客户端验证。
验证是GroupName应该以TPDC_或DMK_ 开头,至少还有一个字母
[Required(ErrorMessage = "Group Name is required")]
[RegularExpression("^(TPDC_|DMK_)+", ErrorMessage = "Group Name should begin with TPDC_ or DMK_")]
public string GroupName { get; set; }
但是使用的正则表达式没有按预期工作。
解决方案
你不需要用交替重复这个组。如果您希望以下字母为 AZ,则可以在其后添加一个字符类。关闭组后可能会移动下划线。
^(?:TPDC|DMK)_[A-Z]
解释
^
字符串的开始(?:
非捕获组TPDC|DMK
匹配 TPDC 或 DMK
)
关闭组_[A-Z]
匹配一个下划线后跟一个字符 AZ
或者,如果您想允许使用任何语言的任何字母,您可以使用它\p{L}
来代替
^(?:TPDC|DMK)_\p{L}
推荐阅读
- apache-spark - 在 GCP Dataproc 中,我们可以在集群中使用的最大工作节点数是多少?
- python - 如何有条件地拆分熊猫中的全名字符串列
- java - 如何解决 Java 中的 NullPointerException 错误?
- coq - 由 case_eq 和 Coq 重写导致的抽象/打字错误
- sql - 如何在SQL中选择具有一列条件值的行
- python - 删除列表中的特定列表
- keycloak - 如何在keycloak中的单个资源上添加多个所有者
- filter - 在 powerbi 中使用多个过滤器进行 DAX 查询
- python - Python, linux:使用 wifi Cell 和 Scheme,我如何连接到网络?
- discord - 从不同的文件中获取给定文件的文件夹(JAVASCRIPT)