繁体   English   中英

如何在 C# 中制作特殊的正则表达式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM