[英]Check whether a string is composed of 3 capital letters and 4 numbers
我需要檢查一個字符串是否由3個大寫字母和4個數字組成。
例如:ABC1234
如何使用正則表達式檢查它?
如果您要查找任何訂單,可以通過以下兩種有趣的方式進行:
^(?=(.*\d){4})(?=(.*[A-Z]){3}).{7}$
“正好是七個字符,包含4位數字和3個大寫字母”。
^(?<d>){4}(?<c>){3}((?<-d>\d)|(?<-c>[A-Z])){7}$
“請期待4位數字和3個大寫字母;然后確保我們總共總共有7位數字或大寫字母,並隨我們進行計數”。
我想象這樣的事情會起作用: https : //regex101.com/r/81ZTVQ/1
^[AZ]{3}[0-9]{4}$
說明:
[AZ]
-區分大小寫的連續字符(大寫A到大寫Z)匹配謂詞 {n}
-先前匹配謂詞的精確數字匹配 [0-9]
數值范圍(在這種情況下,為0到9)匹配謂詞 測試用例:
ABC1234 - Full match
A1BC234 - No match
GFQ9230 - Full match
ACB0000 - Full match
編輯:
我想補充一下我的補充內容,該內容與Rawling的回答有些相似,但略有不同。
https://regex101.com/r/81ZTVQ/7
^(?=(.*[AZ]){3})(?=(.*\\d){4})([AZ\\d]{7})$
說明
(?=(.*[AZ]){3})
-與AZ匹配任何前一個字符的正向超前3次。 (?=(.*\\d){4})
-與0-9匹配任何前一個字符的正向超前3次。 ([AZ\\d]{7})
-提供的參數必須匹配此謂詞-AZ和0-9的任意組合為7。 我只喜歡將其分組,因此分組。 從邏輯上向后工作,只要長度為7,我們就可以將AZ和0-9進行任意組合。然后我們的正向斷言斷言了需求的長度(在這種情況下,為4位數字,3個大寫字母)。
編輯用例
ABC1234
A1BC234
GFQ9230
ACB0000
AGF1923
A237323
3E44E4E
12344AB
AAAE123
AK348A3
另一個正則表達式: ^[AZ]{3}\\d{4}$
\\d
代表數字 ^
第一個字符之前的錨點 $
錨點位於最后一個字符之后 您可以檢查字符串是否由3個大寫字母和4個數字組成(假設這些大寫字母和數字可以出現在字符串中的任何位置),如下所示:
Regex rgx = new Regex(@"(^[A-Z]{3}\d{4}$)|(^[A-Z]{2}\d[A-Z]\d{3}$)|(^[A-Z]{2}\d{2}[A-Z]\d{2}$)|(^[A-Z]{2}\d{3}[A-Z]\d$)|(^[A-Z]{2}\d{4}[A-Z]$)|(^[A-Z]\d[A-Z]{2}\d{3}$)|(^[A-Z]\d[A-Z]\d[A-Z]\d{2}$)|(^[A-Z]\d[A-Z]\d{2}[A-Z]\d$)|(^[A-Z]\d[A-Z]\d{3}[A-Z]$)|(^[A-Z]\d{2}[A-Z]{2}\d{2}$)|(^[A-Z]\d{2}[A-Z]\d[A-Z]\d$)|(^[A-Z]\d{2}[A-Z]\d{2}[A-Z]$)|(^[A-Z]\d{3}[A-Z]{2}\d$)|(^[A-Z]\d{3}[A-Z]\d[A-Z]$)|(^[A-Z]\d{4}[A-Z]{2}$)|(^\d[A-Z]{3}\d{3}$)|(^\d[A-Z]{2}\d[A-Z]\d{2}$)|(^\d[A-Z]{2}\d{2}[A-Z]\d$)|(^\d[A-Z]{2}\d{3}[A-Z]$)|(^\d[A-Z]\d[A-Z]{2}\d{2}$)|(^\d[A-Z]\d[A-Z]\d[A-Z]\d$)|(^\d[A-Z]\d[A-Z]\d{2}[A-Z]$)|(^\d[A-Z]\d{2}[A-Z]{2}\d$)|(^\d[A-Z]\d{2}[A-Z]\d[A-Z]$)|(^\d[A-Z]\d{3}[A-Z]{2}$)|(^\d{2}[A-Z]{3}\d{2}$)|(^\d{2}[A-Z]{2}\d[A-Z]\d$)|(^\d{2}[A-Z]{2}\d{2}[A-Z]$)|(^\d{2}[A-Z]\d[A-Z]{2}\d$)|(^\d{2}[A-Z]\d[A-Z]\d[A-Z]$)|(^\d{2}[A-Z]\d{2}[A-Z]{2}$)|(^\d{3}[A-Z]{3}\d$)|(^\d{3}[A-Z]{2}\d[A-Z]$)|(^\d{3}[A-Z]\d[A-Z]{2}$)|(^\d{4}[A-Z]{3}$)");
var samples = new string[]{ "ABC1234", "1A2B3C4", "ABCD123", "aBC1234", "ABC12345" };
foreach(var sample in samples)
{
Console.WriteLine(sample + " is " + (rgx.IsMatch(sample) ? "a match" : "not a match"));
}
輸出:
ABC1234是一場比賽
1A2B3C4是一個匹配項
ABCD123不匹配
aBC1234不匹配
ABC12345不是一個匹配項
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.