2016-05-06 45 views
2

得到重複角色,我有一個字符串是這樣的:PHP:如何在字符串

Aaaaaaaaa 

我想停止重複剛纔的3倍,但不會打破小寫/大寫,如:

Aaa 

我的正則表達式打破了小寫/大寫:

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

結果:

AAA 

我想:

Aaa 

thanx的幫助

回答

1

使用子模式,以獲得額外的反向引用(第一個子模式是第一個字符,第二子模式 - 在接下來的兩個相同字符):

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

print_r($chain); // "Aaa" 
+0

thanx很多!!! – user3134277

+0

...不客氣 – RomanPerekhrest