[英]Regular Expression - 2 letters and 2 numbers in C#
我正在嘗試開發一個正則表達式來驗證出現在我面前的字符串,例如:“TE33”或“FR56”或任何關於 2 個字母和 2 個數字的序列。
前 2 個字符必須是字母,最后 2 個字符必須是數字。
我嘗試了很多組合,但都沒有成功。 我試過的最后一個:
if(Regex.IsMatch(myString, "^[A-Za-z]{2}[0-9]{2}")){
}
這應該讓您以兩個字母開頭並以兩個數字結尾。
[A-Za-z]{2}(.*)[0-9]{2}
如果你知道它總是只有兩個和兩個,你可以
[A-Za-z]{2}[0-9]{2}
只是為了好玩,這是一個非正則表達式(對於像我這樣的簡單者來說更具可讀性/可維護性)解決方案:
string myString = "AB12";
if( Char.IsLetter(myString, 0) &&
Char.IsLetter(myString, 1) &&
Char.IsNumber(myString, 2) &&
Char.IsNumber(myString, 3)) {
// First two are letters, second two are numbers
}
else {
// Validation failed
}
編輯
看來我誤解了要求。 下面的代碼將確保字符串的前兩個字符和后兩個字符有效(只要字符串的長度 > 3)
string myString = "AB12";
if(myString.Length > 3) {
if( Char.IsLetter(myString, 0) &&
Char.IsLetter(myString, 1) &&
Char.IsNumber(myString, (myString.Length - 2)) &&
Char.IsNumber(myString, (myString.Length - 1))) {
// First two are letters, second two are numbers
}
else {
// Validation failed
}
}
else {
// Validation failed
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.