如何在php中连续两次检查String是否包含相同的字母?

时间:2013-09-17 12:04:44

标签: php html regex

我不明白为什么我的代码不起作用,有什么建议吗?

$pattern_c_sap='/\.\-/';
$local='.................';
$local_array = explode( '', $local );

for($i=0; $i<=$local_length; $i++){
if(preg_match($pattern_c_sap , $local_array[$i]) && preg_match($pattern_c_sap , $local_array[$i+1])) {
    return false;
}
}

我遇到以下错误: 正则表达式应该是

[/\.\-/]

我应该在拆分每个字母时使用str_split而不是explode。

5 个答案:

答案 0 :(得分:17)

您可以使用下面的preg_match

if(preg_match('/(.)\1/', $local, $match){
    echo "contains consecutive characters";
}

(.)捕获一个角色。

\1指的是捕获的角色。

因此,如果您有AA,则(.)抓取A\1将表示A。因此正则表达式将检查AA

答案 1 :(得分:5)

if (preg_match('/(.)\1/', $str))
    echo "Has 2 same characters consecutively!";

答案 2 :(得分:5)

  

警告:explode():第5行的此脚本中的空分隔符

$local_array = explode('', $local);

修复将是爆炸构造

的正确分隔符

答案 3 :(得分:0)

使用正则表达式量词来连续匹配一个字符。比如/\.{2}/。这将连续两次匹配.。或/g{4}/将匹配四个g

答案 4 :(得分:0)

$pattern = "/(\.|\-)/";
$local='.................';

if (preg_match($pattern, $local, $matches)){
  $num_of_occurences = count($matches)-1 ;
  echo "Number of occurences is {$num_of_occurences}" ;

}