2016-08-30 68 views
-1

我想寫一個正則表達式,檢查字符串是否包含6個或更多的跡象,包括1個或多個特殊符號[^ 0-9a-zA-Z \ s]和1或更多[0-9a-zA-Z]。 花一樣小時,並沒有得到任何接近:/如何寫正則表達式來檢查指定的密碼

+1

沒有實例要測試的,這幾乎是不可能。 –

回答

1

也許這是一些幫助:

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{6,13}$ 

密碼expresion需要一個小寫字母,一個大寫字母,一個數字,長6-13 ,並沒有空格。

匹配:

1agdH*$# | 1agdC*$# | 1agdB*$# 

不匹配:

wyrn%@*&$# f | mbndkfh782 | BNfhjdhfjd&*)%#$) 

這是基於正則表達式庫入口here

+1

{4,8}限制長度從4-8長度不是6-13長度 – gaoithe

+0

更正,謝謝 – Hasson

0

以哈森的回答風格。 。 。

grep -P '^(?=.*[^a-zA-Z0-9\s])(?=.*[a-zA-Z0-9])(?!.*\s).{6}' 
  • 6個或更多個字符
  • 1或多個特殊字符(正則表達式不與$結束)(?=。* [^ 0-9A-ZA-Z \ S])
  • 1或多個(= * [0-9A-ZA-Z])
  • 沒有空格

一些測試數據,NO匹配(* \ S!):

password 
pa5sword 
pa5sWord 
pa5sWord 
password 
test 
1agdA 
1agd 
wyrn%@*&$# f 
mbndkfh782 
t1*$ 

一些測試數據,YES匹配:

pa5*Word 
pa5*Word 
pa5*Word1 
pa5*Wor 
1agdA* 
1agdA*$ 
1agdA*$# 
1agdA*$#1 
1agdA*$#12 
1agdA*$#123 
1agdA*$#a 
1agdA*$#ab 
1agdA*$#abc 
1agdA*$#abcd 
BNfhjdhfjd&*)%#$)