[英]Set limit to length of Regular expression
該行應該是:
.
和減號-
我寫了以下正則Regex
模式:
string pattern = @"^[A-Za-z]{1}[A-Za-z0-9\-\.]{1,18}[A-Za-z0-9]{1}$";
第三,第四和第五個條件不滿足:
string s1 = "E";
// Compare a string against the regular expression
var isOK = new Regex(pattern).IsMatch(s1);
你能告訴我創建正則表達式模式的正確方法嗎?
您可以使用
string pattern = @"^[A-Za-z][A-Za-z0-9.-]{0,19}(?<=[A-Za-z0-9])$";
或者更強一些,因為它會因非匹配輸入而更快失敗,並且不會允許任何尾隨換行:
string pattern= @"^[A-Za-z][A-Za-z0-9.-]{0,19}\z(?<=[A-Za-z0-9])";
細節 :
^
- 字符串的開頭 [A-Za-z]
- 一封信 [A-Za-z0-9.-]{0,19}
- 0到19個字母,數字或.
或-
符號 (?<=[A-Za-z0-9])
- 之前應該有一個字母數字.... $
- 字符串的結尾(最好用\\z
替換以匹配字符串的最后一端) 嘗試這樣的事情:
^[A-Za-z]([-.A-Za-z0-9]{0,18}[A-Za-z0-9])?$
它將首先匹配單個字母字符,然后選擇一系列最多18個字母,數字,句點或連字符,以字母數字結尾。 如果您願意,可以在字符類中轉義連字符,但如果不這樣做,則應將其作為類中的第一個字符,以使其不被解釋為范圍。 將連字符設為類中的最后一個字符適用於某些實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.