正则表达式检查后续字符

时间:2017-02-17 02:12:47

标签: regex string numbers integer

我想询问是否有可能获得正则表达式来检查字符串中的后续字母或数字,例如" abcd"或" 1234"连续4个字符。

这是用于密码验证,以检查用户是否正在尝试输入密码,例如" abcd1234"

谢谢

1 个答案:

答案 0 :(得分: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