如何替换aaabbbccc为abc?(abc代表任意字符)

来源:百度知道 编辑:UC知道 时间:2024/05/25 00:22:57
不好意思,忘了说是php的了。主要是想弄个防灌水的。免得有些用户老发类似 啊啊啊啊啊啊啊啊 AAAAAAAAAAAAAAA 的帖子。想把重复出现的都替换为一个。

<?php
$test = "啊啊啊没没没呀呀呀";
print_r(preg_replace('/(.){3}(.){3}(.){3}/u',"\${1}\${2}\${3}",$test));
?>

上边这个只能匹配你给的那个连续三个的串,下边这个稍微好一点

<?php
$test = "11111222222啊啊啊啊没没没没呀呀呀呀111111呀呀呀呀bbbbbbcccAAAccc111啊 啊啊1133333 啊啊";
$test = str_replace(" ","",$test);
$testChinese = preg_replace('/(\w+)/',"\${2}",$test);
$testNum = preg_replace('/(\W+)/',"\${2}",$test);

$resultChinese = dropDuplicateArr($testChinese,3);
$resultNum = dropDuplicateArr($testNum,1);
for($i = 0; $i < sizeof($resultChinese); $i++)
echo $resultChinese[$i];
for($i = 0; $i < sizeof($resultNum); $i++)
echo $resultNum[$i];

function dropDuplicateArr($string, $size)
{
$arr = str_split($string,$size);
for($i = 0; $i < sizeof($arr); $