PHP - Müssen doppelte Zeichen in einem String entfernen, möchten aber Ausnahmen einschließen

Ich habe im Internet nach einer Lösung gesucht, aber keine gefunden.

Ich muss doppelte Zeichen in einer Zeichenfolge entfernen, möchte aber auch eine Ausnahme einfügen, damit sich eine ganzzahlige Anzahl von Zeichen in der Zeichenfolge wiederholt / verbleibt.

Ich habe zum Beispiel Folgendes versucht:

$str = 'This ----------is******** a bbbb 999-999-9999 ******** 8888888888 test 4444444444 ********##########Sammy!!!!!! ###### hello !!!!!!';

$t1 = preg_replace('/(.)\1{3,}/','',$str);
$t2 = preg_replace('/(\S)\1{3,}/','',$str);
$t3 = preg_replace('{(.)\1+}','$1',$str);
$t4 = preg_replace("/[;,:\s]+/",',',$str);
$t5 = preg_replace('/\W/', '', $str);
$t6 = preg_replace( "/[^a-z]/i", "", $str);

echo '$t1 = '.$t1.'<br>';
echo '$t2 = '.$t2.'<br>';
echo '$t3 = '.$t3.'<br>';
echo '$t4 = '.$t4.'<br>';
echo '$t5 = '.$t5.'<br>';
echo '$t6 = '.$t6.'<br>';

Ergebnisse:

$t1 = This is a 999-999- test Sammy hello 
$t2 = This is a 999-999- test Sammy hello 
$t3 = This -is* a b 9-9-9 * 8 test 4 *#Samy! # helo !
$t4 = This,----------is********,a,bbbb,999-999-9999,********,8888888888,test,4444444444,********##########Sammy!!!!!!,######,hello,!!!!!!
$t5 = Thisisabbbb99999999998888888888test4444444444Sammyhello
$t6 = ThisisabbbbtestSammyhello

Die gewünschte Ausgabe wäre:

This ---is*** a bbbb 999-999-9999 *** 8888888888 test 4444444444 ***###Sammy!!! ### hello !!!

Wie Sie sehen können, dieerwünscht Die Ausgabe lässt die Zahlen in Ruhe und lässt nur 3 wiederholte Zeichen übrig, d. h. --- ###* !!!

Ich möchte in der Lage sein, die Ausnahmen von 3 zu irgendeiner anderen ganzen Zahl zu ändern, wenn möglich.

Danke im Voraus.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage