2014-09-05 148 views
0

這個給我的任務帶來麻煩。正則表達式 - 限制字符串中的字符數量

假設的字母:

-any lowercase or uppercase letter 
-0-9 decimal digits 
-_ 
-$ 
-% 

我想寫的是給我的字符串表達式:

-starts with a uppercase letter or one of the three symbols 
-can only have at most 6 lowercase or uppercase letters 

我想嘗試像

/^[a-z|_|$|%][a-z|A-Z|_|$|%]* {0,3} 

,但我在跟蹤「最多」情況時遇到問題,具體取決於初始角色

編輯:遺忘的例子。

_ababab <- OK 
ab%$aaaa <- OK 
_abababa <- NOT OK, because there is more than 6 alphabet characters 
a$ababab <- NOT OK, because there is more than 6 alphabet characters 
+0

你能解釋一下這個'只能有最多6小寫字母或大寫字母? – 2014-09-05 03:23:22

+0

刪除出現在角色類中的'|'符號。 – 2014-09-05 03:24:02

+0

我認爲這意味着字符串中不能包含6個以上的小寫字母或6個大寫字母,包括第一個字母。 – 2014-09-05 03:24:52

回答

0

我想你需要添加類似(?=.*[A-Z]{,6})(?=.*[a-z]{,6})

+0

如果大寫和小寫字母不連續怎麼辦? – 2014-09-05 03:29:36

0

我想你想這樣的事情,

^[A-Za-z](?:[^A-Za-z]*[A-Za-z][^A-Za-z]*){5}$|^[_$%](?:[^A-Za-z]*[A-Za-z][^A-Za-z]*){6}$ 

DEMO

相關問題