[英]How to validate this using Regex C#
我有一個輸入,可以是以下內容(這三個之一):
我想出了這個正則表達式,但無法確定原因:
@"[A-Z0-9][1-8]-
我正在考慮在正則表達式檢查后檢查諸如0和9之類的特殊情況,因為正則表達式檢查無法驗證此情況
不確定我是否了解,但是如何:
^(?:[A-Z]|[1-8]|0[1-9]|[1-8][0-9]|9[0-8])$
說明:
(?:...)
是一個沒有捕獲的組。
|
引入替代
[AZ]
表示一個字母
[1-8]
1到8之間的一位數字
0[1-9]
a 0后跟1到9之間的數字
[1-8][0-9]
1到8之間的數字,然后是1到9之間的數字
9[0-8]
9后跟0到8之間的數字
可能是這樣,具體取決於您的實際需求:
^(?:[A-Z]|[0-9]?[1-8])$
我認為您可以使用此模式
@"^([1-8A-Z]|0[1-9]|[1-9]{2})$"
^([1-8]|([0-9][0-9])|[AZ])$
怎么辦?
那將為
A 8(但不是9)09
您可以使用以下模式:
^[1-8][A-Z](?:0[1-9]|[1-8][0-9]|9[0-8])$
^[1-8]
-輸入應以數字1-8開頭 [AZ]
-然后應為單字母AZ (0[1-9]|[1-8][0-9]|9[0-8])$
,並且應以兩個數字結尾,即01-19或10-89或90-98 測試:
string pattern = @"^[1-8][A-Z](0[1-9]|[1-8][0-9]|9[0-8])$";
Regex regex = new Regex(pattern);
string[] valid = { "1A01", "8Z98" };
bool allMatch = valid.All(regex.IsMatch);
string[] invalid = { "0A01", "11A01", "1A1", "1A99", "1A00", "101", "1AA01" };
bool allNotMatch = !invalid.Any(regex.IsMatch);
[1-8]{0,1}[A-Z]{0,1}\d{1,2}
符合以下所有條件
8A8 8B9 9 0 00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.