[英]alphanumeric with at least 1 character
好的,所以我終於確定我需要以下物品:
因此,正則表達式必須執行:
即字母數字字符串,必須至少包含1個字母,並且長度在4到8之間。 (因此,不能只包含數字或字母)。
可以在一個正則表達式中完成所有這些工作嗎?
我假設您的意思是字母數字,至少一個字母 ,且長度為4至8個字符。
嘗試這個:
(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}
(?=
-我們正在使用lookahead ,因此我們可以檢查某些內容而不會影響其余的比賽
.*[a-zA-Z]
-匹配后跟字母的任何字符,即檢查我們是否至少有一個字母
[a-zA-Z0-9]{4,8}
-這將匹配一個字母或數字4至8次。
但是,您說的目的是“不能僅是所有數字或僅是所有字母”,但要求1、2和3不能完成此操作,因為它可以全部為字母,並且滿足所有三個要求。 您可能需要這樣做,並額外提前確認至少一位數字:
(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{4,8}
使用a-zA-Z
並不十分國際友好,因此如果可以使用正則表達式,則最好使用轉義代碼表示“字母”,這樣可能會更好。
另外,我希望這與可接受的密碼不匹配,因為4個字符可能不夠長。
2號和3號似乎矛盾。 以下將匹配4到8之間的字母數字:
/[0-9a-zA-Z]{4,8}/
?Regex.IsMatch("sdf", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
false
?Regex.IsMatch("sdfd", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
true
?Regex.IsMatch("1234", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
false
警告**。*和。+ :
// At least one letter does not match with .*
?Regex.IsMatch("1111", "(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}")
false
?Regex.IsMatch("1aaa", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
true
[a-zA-Z0-9]{4,8}
第一部分指定字母數字,第二部分指定4至8個字符。
試試:[a-zA-Z0-9] {4,8}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.