正则表达式检测相同的字符超过五次?

Jac*_*ght 12 php regex

我试图弄清楚如何编写一个正则表达式,可以检测我的字符串中是否有任何字符连续重复超过五次?例如,它不会检测到"hello",但会检测到"helloooooooooo".

有任何想法吗?

编辑:对不起,为了澄清,我需要它来检测相同的字符重复超过五次,而不是任何五个字符的序列.而且我还需要它来处理任何章程,而不仅仅是像我的例子中的"o".".{5,}"并不好,因为它只检测任意五个字符的任何序列,而不是相同的字符.

Jul*_*rau 24

这应该做到这一点

(\w)\1{5,}
Run Code Online (Sandbox Code Playgroud)
  • (\w) 匹配任何字符并将其放在第一组中
  • \1{5,} 检查第一组至少匹配5次.

用法:

$input = 'helloooooooooo';
if (preg_match('/(\w)\1{5,}/', $input)) {
 # Successful match
} else {
 # Match attempt failed
}
Run Code Online (Sandbox Code Playgroud)


eld*_*his 11

(.)\1{5,}我相信,应该是更正.我的错.这会让你:

(.)  #Any character
\1   #The character captured by (.)
{5,} #At least 5 more repetitions (total of at least 6)
Run Code Online (Sandbox Code Playgroud)

您也可以使用(\w)\1{5,}或将其限制为字母([a-zA-Z])\1{5,}

  • @Powertieke:是的,我不确定OP的“字符”到底是什么意思,所以我只给出了两个选择。 (2认同)