我們有一個用例,我們需要Uid使用以下約束驗證一些用例:在形式lenght 5的UID annnnn其中一個比其它任何字母A,B,D和E。而n是從0到 的任意數(shù)字9。所以我創(chuàng)建了新方法,它將驗證相同并按預期工作。/// <summary>/// Validate Uid of lenght 5 in form annnnn where ‘a(chǎn)’ is any letter other than A, B, D and E./// </summary>/// <param name="value"></param>/// <returns></returns>private static bool IsValidUid( string value ){ bool returnValue = false; if (string.IsNullOrEmpty(value) == false && value.Length == 5) { char firstChar = value[0]; bool firstCharFailed = false; switch (firstChar) { case 'A': case 'B': case 'D': case 'E': firstCharFailed = true; break; } if (firstCharFailed == false) { string remainingStr = value.Substring(1, 4); int numb; if (int.TryParse(remainingStr, out numb) == true) { returnValue = true; } } } return returnValue;}但它可以通過正則表達式有效地完成。因為我不擅長它,所以我需要幫助為我創(chuàng)造一個!提前致謝??!
1 回答

白衣非少年
TA貢獻1155條經(jīng)驗 獲得超0個贊
其中“a”是除 A、B、D 和 E 之外的任何字母。
因此,在這種情況下,您需要指定允許的字母集
[a-zF-ZC]
=> 表示所有字母都在 az 范圍內(nèi),F(xiàn)Z 應該匹配,C 也應該匹配
'n' 是 0 到 9 之間的任何數(shù)字。
\d
匹配一個數(shù)字,或者您可以使用 [0-9]
長度為 5 的形式 annnnn
\d{4}
指定應該匹配的前一個字符的數(shù)量
最后一件事必須做。您需要指定,它a
應該在字符串的開頭,并且字符串在第 5 個字符之后結(jié)束:
^
表示字符串的開始表示字符串$
的結(jié)束。
所以結(jié)合起來看起來像這樣:
string pattern = @"^[a-zF-ZC]\d{4}$
或使用數(shù)字范圍:
string pattern = @"^[a-zF-ZC][0-9]{4}$
這是一個站點,您可以在其中測試和試用您的正則表達式模式。擺弄它以了解它。它有助于
編輯:
在[...]
表示一組將被匹配的字符。范圍使用-
像 in a-z
、A-F
或 之類的符號來表示5-9
。任何其他字符都可以簡單地放入集合中:
[abcdefgxyz]
將只匹配那些指定的字母!
集合和范圍可以組合
[CF-SX-Z]
將匹配C
或之間的所有大寫字母F
和S
之間X
和Z
。我希望現(xiàn)在變得更清楚
- 1 回答
- 0 關注
- 309 瀏覽
添加回答
舉報
0/150
提交
取消