我正在编写一个PHP脚本,我现在需要知道一个字符串是否包含一个刚刚重复的字符。角色甚至是一个特定的角色:它是z
。
例如,我想匹配"z"
,"zzz"
或"zzzzzzzzz"
,但不匹配"zaz"
或"aaa"
。
这可能是一个简单的正则表达式问题,但我不知道如何做到这一点。任何人吗?
答案 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;
}