捕捉PHP正则表达式中的重复字母

捕捉PHP正则表达式中的重复字母,php,regex,Php,Regex,我需要查看一个字符串,并找到使用了1次以上的-字符 $input=堆栈溢出-2014-新建//包含重复字符-超过2次 我已经找到了各种非常接近的答案,但不完全如此。 是否有PHP正则表达式来捕捉这种情况?我有一个基本的regexp知识,但这对我来说太多了 $regex=' '; //// that what i need if (preg_match('/(\w)\1{5,}/', $input)) { # Successful match } else { # Match attempt

我需要查看一个字符串,并找到使用了1次以上的-字符

$input=堆栈溢出-2014-新建//包含重复字符-超过2次

我已经找到了各种非常接近的答案,但不完全如此。 是否有PHP正则表达式来捕捉这种情况?我有一个基本的regexp知识,但这对我来说太多了

$regex=' '; //// that what i need
if (preg_match('/(\w)\1{5,}/', $input)) {
 # Successful match
} else {
 # Match attempt failed
}

我想你要问的是如何匹配多个连字符-使用正则表达式?如果是这样,此表达式将实现以下功能:

/-+/
/=分隔符

-=匹配连字符


+=匹配前面字符的多次出现次数

正则表达式不是计算字符串中出现次数的最佳选择。对于PHP,存在一个名为

e、 g

$s = 'stack-overflow - 2014 - new';
if (substr_count($s, '-') >= 2) {
    // at least 2 times
}