我想定义一个满足以下条件的perl正则表达式
同一字符不能连续出现8次以上-([\ w!#+,-。/:= @])\ 1 {7}
第一个字符不能特殊-^ [^ a-zA-Z0-9] +
允许使用字符-\ w!#+,-。/:= @
我能够单独实现这一点,但是如何结合所有这三个正则表达式。
先谢谢了。
答案 0 :(得分:3)
尝试此正则表达式:
^(?!.*(.)\1{7})[A-Za-z0-9][\w!#+,./:=@-]{7,23}$
这里是一个解释:
^ from the start of the string
(?!.*(.)\1{7}) assert that the same character does not occur 8 or more
times in a row
[A-Za-z0-9] match an inital non special character
[\w!#+,./:=@-]{7,23}$ then match 7 to 23 of any character
$ end of input