我花了几个小时试图解决这个问题。
这是我的正则表达式字符串:
^(?=.{4})(?!.{32})[a-zA-Z0-9_]+((\.(-\.)*-?|-(\.-)*\.?) [a-zA-Z0-9_]+)*$
-
您可以对其进行测试here
以下是我尝试编写的内容(用户名验证):
答案 0 :(得分:3)
此:
^(?=.{4})(?!.{32})(?!.*(.)\1{4})\w[\w.-]+\w$
使用另一个(负面的)先行来处理第三个条件。这个将确保没有角色,然后自己4次。
我还使用代表\w
的{{1}}简化了您的角色类。此外,正如F.J指出的那样,您可以将前两个前瞻组合成一个:
[a-zA-Z0-9]
答案 1 :(得分:0)
尝试以下方法:
^(?=.{4,31}$)(?![-.])(?:(?!(.)\1{4})[-.\w])+(?<![-.])$
这假设您实际上意味着阻止重复的字符,而不是许可。