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