所以目前我有以下正则表达式模式,允许我检测任何包含9个连续相同字符的字符串。
/^.*(\S)\1{9,}.*$/
这与以下字符串完美配合:this a tesssssssssst
但是我希望它也能检测到这样的字符串:this a tess sss ssssst
(重复字符的编号相同,但是带有可选的空格)< / p>
有什么想法吗?
答案 0 :(得分:3)
您需要将反向引用放入组中,并在组中添加可选空间:
^.*(\S)(?: ?\1){9,}.*$
请参阅regex demo。如果中间有多个空格,请将?
替换为*
。
只有在需要获得整行匹配时才需要.*$
部分,对于允许部分匹配的方法,您可以使用^.*(\S)(?: ?\1){9,}
。
如果有任何空格,请用模式中的\s
替换空格。
答案 1 :(得分:0)
您可以通过这种方式检查多个角色 它仅受可用捕获组数量的限制。
这个检查1到3个字符。
(\S)[ ]*(\S)?[ ]*(\S)?(?:[ ]*(?:\1[ ]*\2[ ]*\3)){9,}
# 1-3 Characters
( \S ) # (1)
[ ]*
( \S )? # (2)
[ ]*
( \S )? # (3)
# Add more here
(?:
[ ]*
(?: \1 [ ]* \2 [ ]* \3 )
# Add more here
){9,}