2017-02-17 15 views
1

我想問一下,是否有可能得到一個正則表達式來檢查字符串中的後續字母或數字,如「abcd」或「1234」4個字符連續。正則表達式檢查後續字符

這是密碼驗證來檢查,如果用戶試圖像「ABCD1234」

謝謝

+0

@KernelPanic:同意 –

回答

1

基於答案Match increasing/decreasing sequences using regex,這種模式確實接近輸入密碼。通過編程,您仍然需要獲得第一個捕獲組\1並檢查其大小是否等於4.在這裏您需要設置多行模式,以允許$匹配行結束。

這是因爲這個正則表達式捕獲所有可能的組,所以你想要的組長度爲4,所以它不應該是一個問題。

(?x) 
(
     (?:a(?=b|$))? 
     (?:b(?=c|$))? 
     (?:c(?=d|$))? 
     (?:d(?=e|$))? 
     (?:e(?=f|$))? 
     (?:f(?=g|$))? 
     (?:g(?=h|$))? 
     (?:h(?=i|$))? 
     (?:i(?=j|$))? 
     (?:j(?=k|$))? 
     (?:k(?=l|$))? 
     (?:l(?=m|$))? 
     (?:m(?=n|$))? 
     (?:n(?=o|$))? 
     (?:o(?=p|$))? 
     (?:p(?=q|$))? 
     (?:q(?=r|$))? 
     (?:r(?=s|$))? 
     (?:s(?=t|$))? 
     (?:t(?=u|$))? 
     (?:u(?=x|$))? 
     (?:x(?=z|$))? 
     [a-z]? 
    | 
     (?:0(?=1|$))? 
     (?:1(?=2|$))? 
     (?:2(?=3|$))? 
     (?:3(?=4|$))? 
     (?:4(?=5|$))? 
     (?:5(?=6|$))? 
     (?:6(?=7|$))? 
     (?:7(?=8|$))? 
     (?:8(?=9|$))? 
     \d? 
) 

在這個環節,你可以看到現場的正則表達式:https://regex101.com/r/xxED4s/2