簡體   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