我需要创建正则表达式,无论顺序如何,它都会在字符串中查找 3 个相同的字母。
例子:
'aa2ff333' -> false
'aa2a' -> true
'aaa2' -> true
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它检查连续的字母:
(.)\1\1
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
您可以将此正则表达式与前瞻一起使用:
/([a-zA-Z])(?=(?:.*?\1){2})/
Run Code Online (Sandbox Code Playgroud)
正则表达式详情:
([a-zA-Z]):匹配一个字母[a-zA-Z]并在第 1 组中捕获它(?=: 开始前瞻
(?:.*?\1){2}:至少有 2 次出现与捕获组 #1 中相同的字符。.*?\1匹配\10 个或多个任何字符后的反向引用。这允许匹配输入中任何地方的重复。): 结束前瞻