經過長時間的、不成功的搜索,我開始懷疑我在尋找什么是可能的,我想要一個正則運算式,它要求選擇的每個字母都是強制性的,但只能以任何順序進行一次。
例子 : ^[abc]{3}$
我期望的結果是它只匹配:
abc, bac, cba, acb
雖然我得到:
acc, abb, cca, aab
你明白我要去哪里了嗎?
uj5u.com熱心網友回復:
您可以使用這樣的正則運算式,并在反向參考中對匹配的字符進行負前瞻:
^(?:([abc])(?!.*\1)){3}$
正則運算式演示
uj5u.com熱心網友回復:
這是另一種方式。
^(?!.*([abc]).*\1)[abc]{3}$
演示
該負前瞻
(?!.*([abc]).*\1)
斷言沒有重復字符并且
[abc]{3}
與兩個錨一起斷言字串的長度為 3,并且由字符類中的字符組成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382290.html
標籤:javascript php 正则表达式
