簡體   English   中英

如何使用Regex C#進行驗證

[英]How to validate this using Regex C#

我有一個輸入,可以是以下內容(這三個之一):

  • 1-8…換句話說,1,2,3,4,5,6,7,8
  • AZ…。換句話說,A,B,C,D等
  • 01-98…換句話說,01,02,03,04等

我想出了這個正則表達式,但無法確定原因:

@"[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或1​​0-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM