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

Regex detect any repeated character but with optional whitespace between

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

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

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

有什么想法吗?

您需要将反向引用放入一个组中,并添加一个可选的 space 到组中:

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

参见regex demo。如果中间可以超过 1 个 space,请将 ? 替换为 *

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

如果表示任何白色space,请将模式中的 space 替换为 \s

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

此项检查 1 - 3 个字符。

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

http://regexr.com/3g709

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

 (?:
      [ ]* 
      (?:  [ ]*  [ ]*  )
      # Add more here
 ){9,}