正则表达式检测任何重复的字符,但两者之间有可选的空格

时间:2017-06-20 16:58:48

标签: regex regex-group

所以目前我有以下正则表达式模式,允许我检测任何包含9个连续相同字符的字符串。

/^.*(\S)\1{9,}.*$/

这与以下字符串完美配合:this a tesssssssssst但是我希望它也能检测到这样的字符串:this a tess sss ssssst(重复字符的编号相同,但是带有可选的空格)< / p>

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您需要将反向引用放入组中,并在组中添加可选空间:

^.*(\S)(?: ?\1){9,}.*$

请参阅regex demo。如果中间有多个空格,请将?替换为*

只有在需要获得整行匹配时才需要.*$部分,对于允许部分匹配的方法,您可以使用^.*(\S)(?: ?\1){9,}

如果有任何空格,请用模式中的\s替换空格。

答案 1 :(得分:0)

您可以通过这种方式检查多个角色 它仅受可用捕获组数量的限制。

这个检查1到3个字符。

(\S)[ ]*(\S)?[ ]*(\S)?(?:[ ]*(?:\1[ ]*\2[ ]*\3)){9,}

http://regexr.com/3g709

 # 1-3 Characters
 ( \S )                        # (1)
 [ ]* 
 ( \S )?                       # (2)
 [ ]* 
 ( \S )?                       # (3)
 # Add more here

 (?:
      [ ]* 
      (?: \1 [ ]* \2 [ ]* \3 )
      # Add more here
 ){9,}