我已经找到了很多非常接近的答案,但还不太一样。
我需要查看一个字符串,并查找使用超过3次的任何字符。 基本上限制密码以禁止“mississippi”,因为它里面有超过3个s。 我认为它只需要是字符,但应该是unicode。 所以我猜字符集匹配的(:alpha:)。
我发现(\w)\1+{4,}
可以找到连续的字符,比如ssss或missssippi,但如果它们不是连续的,则无法找到。
我正在逐步解决其他正则表达式问题,看看是否有人已经回答了它,但有很多问题,但还没有成功。
我已经找到了很多非常接近的答案,但还不太一样。
我需要查看一个字符串,并查找使用超过3次的任何字符。 基本上限制密码以禁止“mississippi”,因为它里面有超过3个s。 我认为它只需要是字符,但应该是unicode。 所以我猜字符集匹配的(:alpha:)。
我发现(\w)\1+{4,}
可以找到连续的字符,比如ssss或missssippi,但如果它们不是连续的,则无法找到。
我正在逐步解决其他正则表达式问题,看看是否有人已经回答了它,但有很多问题,但还没有成功。
/(.)(.*\1){3}/
尝试将此与检查可允许字符组合在一起毫无意义。您应该首先测试所有字符是否为允许字符,然后再运行此测试。这就是为什么在此处使用“.”是可以的。
但是它会很慢。如果只迭代一次字符串并计算字符数,则速度会更快。虽然对于您的目的,我怀疑这没有太大区别,因为字符串非常短。
(\w)(.*\1){2,}
匹配一个“单词字符”,然后是两个“任意字符,再次是第一个字符”。因此,在第一个字符之间有任何内容的情况下,有三个第一个字符的副本。
[^\W\d_]
来仅获取字母。 - Greg Bacon.*(\w).*\1.*\1.*\1.*
这将匹配一个字符串,该字符串包含任意数量的字符,然后是特定的字符,之后再重复三次相同的字符(总共四次),中间可以有任意数量的字符(0..n)。这就是你想要的,对吧?
在例如 http://www.regexplanet.com/simple/index.html 上进行测试。
这个正则表达式可以匹配例如 "mississippi"(>3个s)和 "twinkle twinkle little star"(>3个t)。