我有这样的字符串:
Aaaaaaaaa
我想停止重复3次,但不要打破小写/大写,如下所示:
Aaa
我的正则表达式打破了小写/大写:
$patternReplace = '/(.)\1{3,}/iu';
$chaine = preg_replace($patternReplace, '$1$1$1', $chaine, -1 );
结果:
AAA
我想得到:
Aaa
thanx求助
答案 0 :(得分:1)
使用子模式获取额外的反向引用(第一个子模式用于第一个字符,第二个子模式用于接下来的两个相同字符):
$chain = "Aaaaaaaaa";
$patternReplace = '/(.)(\1{2})\1{1,}/iu';
$chain = preg_replace($patternReplace, '$1$2', $chain);
print_r($chain); // "Aaa"