我有這樣的規則的Javascript正則表達式的非連續字符
var reg = new RegExp('[a-z]{3}');
這意味着它是允許A-Z和至少出現3次之間使用的字符。 所以,我想知道是否有一種方法來匹配這個規則與非順序字符。
換句話說,
"abc" => valid
"aaa" => not valid
謝謝!
我有這樣的規則的Javascript正則表達式的非連續字符
var reg = new RegExp('[a-z]{3}');
這意味着它是允許A-Z和至少出現3次之間使用的字符。 所以,我想知道是否有一種方法來匹配這個規則與非順序字符。
換句話說,
"abc" => valid
"aaa" => not valid
謝謝!
這裏是恰好3工作的正則表達式(或N)的字符,如果數量是不固定的它變得更加複雜:
^([a-z])(?!\1{2})[a-z]{2}$
1 2 3 4 5 6 7 8
說明:
^
的開頭相匹配字符串([a-z])
匹配接受的字符之一併保存它(組1)(?!...)
負先行,什麼是在那些括號不被接受\1
參照第一組(此處第一個字符){2}
重複正好兩次[a-z]
所接受的字符{2}
重複正好兩次$
匹配字符串的末尾Link here(我添加了gm
修飾符,以便可以測試幾個表達式。)
太棒了!對於任何想要使其不區分大小寫且包含2-11個字符之間的數字的人,^(\ w)(?!\ 1 {2})\ w {1,10} $非常令人印象深刻的正則表達式先生! –
@SteveKline謝謝。我認爲你的正則表達式檢查,第一個字符不重複三次,如果你想在任何位置檢查它的長度,那麼它會變得非常棘手(不知道它是否可能)。 – maraca
感謝隊友,它解決了我的問題! \ O / –
嘗試使用排除前瞻(?![a-z]{3})
,它將而不是匹配3個相等字符的順序。
這不起作用:[Regex101](https://regex101.com/r/rM9bQ6/1)。 –
「aba」應該是有效的,還是您不希望字符被多次使用? (另外,我將「abc」描述爲連續字符,將「aaa」描述爲重複字符。) – nnnnnn
'{3}'*正好* 3個字符,'{3}} *至少* 3。 – maraca
,你可能需要錨太多'^ ... $',因爲我不認爲你想接受一個4字母字符串的3個字符,或者你呢? – maraca