如何检测一对char的n次重复序列。
示例:
/(A{n})(B{n})/i
适用于AAABBB
或AAAAABBBBB
不适用于AABBBB
或AAABB
/(A{n})(BB{n})/i
适用于AABBBB
或AAABBBBBB
不适用于AABBB
或AAABB
答案 0 :(得分:0)
不确定这是否是您正在寻找的但似乎有效。
$input = "AABBAAABBBBBB";
preg_match_all("/A+|B+/", $input, $parts);
//var_dump($parts);
for ($i=0; $i<=count($parts[0])-1; $i++){
if(strlen($parts[0][$i]) == strlen($parts[0][$i+1]) && strlen($parts[0][$i]) > 1 && strlen($parts[0][$i]) > 1){
echo "match " . $parts[0][$i] ." " . $parts[0][$i+1]. "\n";
}else if(strlen($parts[0][$i])*2 == strlen($parts[0][$i+1]) && strlen($parts[0][$i]) > 1 && strlen($parts[0][$i]) > 1){
echo "match " . $parts[0][$i] ." " . $parts[0][$i+1]. "\n";
}
$i++;
}
已编辑以添加至少两个字符的请求,以匹配上述评论。
再次编辑,忘记了AABBBB比赛