^(?=(.*\d){4,})(?=(.*[A-Z]){3})(?!\s)(?=.*\W{2,})(?=(.*[a-z]){2,}).{12,14}$
正則表達式(紅寶石):匹配非字,但不包括空間
上面的正則表達式是試圖:
- 匹配至少4個數字 -
(?=(.*\d){4,})
- 嚴絲合縫3上殼體字母 -
(?=(.*[A-Z]){3})
- 與空格不匹配 -
(?!\s)
- 匹配至少2個非單詞字符 -
(?=.*\W{2,})
- 匹配至少2個低級 -
(?=(.*[a-z]){2,})
- 字符串必須在長度爲12和14之間 -
.{12,14}
但是我有收到此避免匹配空間是一個挑戰。這似乎是因爲\ W還包括空格,我之前對空格的負面預測被忽略。
例如:
[email protected]*8Pd
- 應匹配[email protected] 3*8Pd
- 不應該匹配
編輯,以提供進一步的說明:
基本上,我試圖避免必須拼出POSIX [:punct:]類中的所有字符,即!"#$%&'()*+,./:;<=>[email protected]\^_\
{|}〜-` ..這就是爲什麼我需要使用\ W ..但是我也想排除空格
我可以使用第二雙眼睛,這裏更有經驗的建議..
再次編輯,糾正在子模式規定計數混淆,如指出,下面接受的答案。
你可以添加一個應該匹配但不匹配的測試,或者一個不應該匹配的文本,但是可以嗎? –
我與@UriAgassi - 它讓求職者的生活更輕鬆 – mdesantis
是的,我同意..我也有信的人數混合起來。現在編輯。謝謝。 –