我想用下面的限制來創建一個正則表達式,但也許我錯過了一些東西,因爲它會產生錯誤的輸出。創建滿足多個條件的正則表達式
限制:
1)字符串不應包含數字僅
2)字符串不應含有超過3個特殊字符
3)STRING還沒有任何字(子串),其具有長度超過10個字符
4)字符串長度必須大於或等於3
我已經創建了一個正則表達式的一種解決第一點:
/^\d*[a-zA-Z][a-zA-Z\d]*$/
但我沒有通過添加其他限制2-4。
我想用下面的限制來創建一個正則表達式,但也許我錯過了一些東西,因爲它會產生錯誤的輸出。創建滿足多個條件的正則表達式
限制:
1)字符串不應包含數字僅
2)字符串不應含有超過3個特殊字符
3)STRING還沒有任何字(子串),其具有長度超過10個字符
4)字符串長度必須大於或等於3
我已經創建了一個正則表達式的一種解決第一點:
/^\d*[a-zA-Z][a-zA-Z\d]*$/
但我沒有通過添加其他限制2-4。
你可以使用像
^(?!\d+$)(?!(?:[^$&%@]*[$&%@]){4})(?!.*\b\w{11}).{3,}$
正則表達式見regex demo
模式細分:
^
- 字符串的開始(?!\d+$)
- 必須不存在唯一的數字( \d+
)直到字符串的末尾($
)(?!(?:[^$&%@]*[$&%@]){4})
- 必須不存在的0+非特殊字符([^$&%@]*
)4個序列,隨後以特殊字符(?!.*\b\w{11})
- 必須不存在一個字邊界之後具有11個字字符(\w{11}
)字(\b
).{3,}
- 3+任何字符$
- 字符串的結尾嘿@wktor你是偉大的。這很好。非常感謝你 –
嗨能否請您轉換上面MySQL查詢兼容的正則表達式。因爲我收到錯誤:從regexp得到錯誤'重複操作符操作數無效'。當使用MySQL查詢 –
這是不可能的,MySQL的REGEXP不支持lookarounds。 –
我不明白你的所有限制:1)你想你的串Ca n不只包含數字? 2)什麼是「特殊」字符? 3)根本不理解第3點(猜猜:不允許背後10個字符?!) – Rizier123
1)整個字符串不應該只有數字2)字符串不應該有超過3個特殊字符($,&, %,@)3)字符串有很多單詞,所以每個單詞的長度應該少於10個字符。 4)整個字符串長度不得少於3個字符。 –
4.使用strlen()會更容易閱讀。 – Andreas