2013-12-20 77 views
-2

我要尋找一個正則表達式匹配不包含至少三個字符[A-ZA-Z]正則表達式匹配字符串不是方含至少X字符

Valid Strings: 
abc12345 
asd 
abc12321!! 

Invalid Strings: 
aa! 
111!!!a 
!!!!!!b 
+2

另外,你要連續三個字符的字符串還是應該有隻是在隨機位置至少有三個字符字符串? –

+1

@wared我會認爲OP關心一般的正則表達式,而不是特定語言或庫中的特定實現。 –

+0

我最終使用^(?:[^ \ p {L}] * [\ p {L}]){0,2} [^ \ p {L}] * $來支持非Unicode字符。感謝您的幫助! – Timur

回答

2

我會用:

(?:[^a-zA-Z]*[a-zA-Z]){3,}[^a-zA-Z]* 

你可以找到這個表達式here的交代。

比賽:

abc12345 
asd 
abc12321!! 
a85ug 
83nj%@8n2 

不匹配:

aa! 
111!!!a 
!!!!!!b 
a59&*@g9 
+0

最後一部分'[^ a-zA-Z] *'不是強制性的。儘管如此+1。 – Toto

+0

@ M42我知道,但沒有它的正則表達式可能不匹配整個字符串。 –

+0

這不是一個問題,因爲至少有3個字母的字符是有或沒有最後一部分。 – Toto

2

您可以檢查是否字符串以下正則表達式匹配字符串:

[a-zA-Z]{3,} 

如果不匹配,則該字符串無效。

基本上{3,}正則表達式的一部分表示前一個字符類應至少匹配三次。這是非常靈活的,你可以指定一個匹配所需的最小數量和最大次數,例如:{MIN,MAX},如果你忽略了MIN或MAX,那麼只使用指定的值(即{3,}意味着至少爲 3,而{,3}將意味着最多 3)

相關問題