如何在C#中创建特殊的正则表达式?

huangapple go评论82阅读模式
英文:

How to make special regex in c#?

问题

在我的项目中,我想要实现特殊的正则表达式用于字符串匹配。
例如:我需要HypervisorName以首字母开始,然后是数字,像"hvm01"这样。
我使用了以下正则表达式:

[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"的名称,但在我的情况下,我需要首字母和数字连在一起。

英文:

In my project I would like to implement special regex for string.
For ex: I need HypervisorName like "hvm01" first letters then numbers.
I used regex like below:

[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")]

But I am still able to add name like "test" but in my case I need both together first letter then number.

答案1

得分: 1

可以将正则表达式更改为类似于 ^[a-z]{3,}\\d{2,}$ 并使用 RegexOptions.IgnoreCase 吗?

这将检查字符串开头 ^ 处是否有至少三个字母 [a-z]{3,},然后是至少两个数字 \\d{2,},最后是字符串的结尾 $

您可以通过 {} 括号中的第二个选项限制最大字母数量,例如 [a-z]{3, 10} 表示最少 3 个字母和最多 10 个字母。

var r = new Regex("^[a-z]{3,}\\d{2,}$", RegexOptions.IgnoreCase);

匹配: hostname123
错误匹配: h1
匹配: HHH12
错误匹配: HHH 12
错误匹配: host name
错误匹配: host name123
英文:

can you change the regex to something like ^[a-z]{3,}\\d{2,}$ and use the RegexOptions.IgnoreCase?

This will check that there are minimum three letters [a-z]{3,} at the start ^ on the string followed by the minimum 2 digits \\d{2,} and the end of the string $.

You can limit max number of letters by second option in the {} brackets, like [a-z]{3, 10} means min 3 and max 10 letters

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

huangapple
  • 本文由 发表于 2020年1月6日 18:38:22
  • 转载请务必保留本文链接:https://go.coder-hub.com/59610588.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定