[英]How to make special regex in c#?
在我的项目中,我想为字符串实现特殊的正则表达式。 例如:我需要像“hvm01”这样的HypervisorName,第一个字母然后是数字。 我使用了如下正则表达式:
[RegularExpression(@"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-
9\-]*[A-Za-z0-9])$", ErrorMessage = "Virtual Machine name is not formatted correctly")]
但我仍然可以添加像“test”这样的名字,但在我的情况下,我需要第一个字母然后数字。
您可以将正则表达式更改为^[az]{3,}\\\\d{2,}$
并使用RegexOptions.IgnoreCase
吗?
这将检查字符串的开头^
处是否至少有三个字母[az]{3,}
,后跟最少 2 个数字\\\\d{2,}
和字符串$
的结尾。
您可以通过 {} 括号中的第二个选项限制最大字母数,例如[az]{3, 10}
表示最少 3 个和最多 10 个字母
var r = new Regex("^[a-z]{3,}\\d{2,}$", RegexOptions.IgnoreCase);
matched: hostname123
wrong match: h1
matched: HHH12
wrong match: HHH 12
wrong match: host name
wrong match: host name123
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.