我试图弄清楚如何编写一个正则表达式,可以检测我的字符串中是否有任何字符连续重复超过五次?例如,它不会检测到"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,}