使用正则表达式来查明字符串是否只是一个重复的字符

时间:2010-11-23 18:03:38

标签: php regex repeat

我正在编写一个PHP脚本,我现在需要知道一个字符串是否包含一个刚刚重复的字符。角色甚至是一个特定的角色:它是z

例如,我想匹配"z""zzz""zzzzzzzzz",但不匹配"zaz""aaa"

这可能是一个简单的正则表达式问题,但我不知道如何做到这一点。任何人吗?

6 个答案:

答案 0 :(得分:2)

将其与^z*$匹配:开始(^),任意数量的z(z *),结束($)

答案 1 :(得分:2)

^zz+$

..... la la 15 characters

答案 2 :(得分:1)

如果正则表达式吓到你 - 你可以使用像哈曼提出的功能或类似的东西:

$string = 'zzzzzzzzz';
$check = str_repeat('z', strlen($string));
var_dump($check == $string); // dumps bool(true)

$string = 'zzzzAAAzzz';
$check = str_repeat('z', strlen($string));
var_dump($check == $string); // dumps bool(false)

答案 3 :(得分:1)

不需要正则表达式。利用PHP数组的强大功能:

count(array_unique(str_split($string)))==1

答案 4 :(得分:1)

当我检查一个字符串是否只是重复相同的字符时,我这样做:

if (strlen(count_chars($string, 3)) = 1) return true;

答案 5 :(得分:0)

您可以创建这样的自定义函数:

function oneLetter($str){

  for($i=1; $i < strlen($str); $i++){
    if($str[i] != $str[i-1]) return false;
  }

  return true;

}