PHP:如何在字符串

时间:2016-05-06 13:56:28

标签: php regex preg-replace

我有这样的字符串:

Aaaaaaaaa

我想停止重复3次,但不要打破小写/大写,如下所示:

Aaa

我的正则表达式打破了小写/大写:

$patternReplace = '/(.)\1{3,}/iu';    
$chaine = preg_replace($patternReplace, '$1$1$1', $chaine, -1 );

结果:

AAA

我想得到:

Aaa

thanx求助

1 个答案:

答案 0 :(得分:1)

使用子模式获取额外的反向引用(第一个子模式用于第一个字符,第二个子模式用于接下来的两个相同字符):

$chain = "Aaaaaaaaa";
$patternReplace = '/(.)(\1{2})\1{1,}/iu';
$chain = preg_replace($patternReplace, '$1$2', $chain);

print_r($chain);  // "Aaa"