RegExp. doppelte Zeichen entfernen

IQ100

Mitglied
Hallo, vielleicht kann mir ja hier jemand helfen?! Ich glaube ich habe gerade das ganze Internet durchsucht und nichts gefunden :( bin auch schon am verzweifeln, da ich schon länger nach einer Lösung suche.

Ich hätte gerne aus einem String der mehrere Sätze enthalten kann doppelte Zeichen die hintereinander auftauchen entfernt.

Also etwa sowas: "Iiiiichhh bbbiiinnn eiiinnn Teeeeessst"
Zu diesem machen: "Ich bin ein Test"

Habe zwar wenig ahnung von RegExp. aber habe das hier probiert:
$such = '/\b(.{3})\b/';
$result = preg_replace($such, '', $suchtext);

und dies hier
$such = '/[az][AZ]{3})/';
$result = preg_replace($such, '', $suchtext);

hat aber irgendwie nicht funktioniert, kennt sich jemand mit Regular Expression aus und kann mir helfen - wäre echt dankbar :)
 
Auch wenn es nicht deinem Anliegen entspricht, würde ich dir empfehlen in solche Wörter lediglich einen Umbruch einzufügen.

Was genau soll deine Seite eines Tages darstellen?
Ein Social Network? (denke ich, da sowas jeder vor hat)

Hinweis:
So etwas mit RegExp stelle ich mir als RegExp "Rookie" recht komplex vor. Zudem sehe ich keinen Nutzen darin sich wiederholende Buchstaben auf einen zu reduzieren, außer verminderten Traffic.

Dennoch liefert Google zur Zeit eine Lösung bei dem Suchbegriff "php wiederholende zeichen": http://www.php-resource.de/forum/ph...ederholende-zeichen-aus-string-entfernen.html

Aber nochmals: Warum?
 
Zuletzt bearbeitet:
Wie du das mit den Zeilenumbruch meinst, verstehe ich nicht, aber ich weis das es nicht sonderlich komplex ist ... habe nur nicht die lektüre zum lernen ;-) und mein Bruder der das kann, arbeitet derzeit außerhalb von DD und hat keine Zeit für mich :(

Warum das wichtig ist: Das hat weniger mit dem Traffic zu tun, aber ich besitze einen Chat in dem es ein öffentlichen Chatroom gibt und in diesem werden eben oft solche Sätze reingeschrieben und da das alles in einer Datenbank gespeichert wird nimmt das meinen Speicherplatz ein. und zweitens sieht das für keinen User toll aus, wenn er in einem Chat solche Sätze sieht die den halben Chat füllen.

PS: Ein Buchstabe solls nicht sein lieber währen mir drei (da es ja Wörter mit drei Buchstaben hintereinander gibt)

Das was du da gefunden hast, genau das habe ich gesucht, nur komisch das ich das nicht gefunden habe, die ganze Nacht hab ich durch gemacht und tausende Seiten durchstöbert ... egal ich habs meinen Script angepasst und es funktioniert - Großen dank an dich

PS: Es geht aber auch noch mit RegExp kürzer :p wenn jemand weis wie, kann er es ja hier posten ... interessieren würde mich das schon.


THEMA ERLEDIGT

Hab's gefunden *grins*

Siehste nicht wirklich komplex :p eine Zeile - man muss nur wisse wie ... werde mir sowieso wenn ich wieder mal geld habe ein buch darüber kaufen, nur mein php buch beschreibt dieses Thema sehr kurz - ist halt ein PHP-Buch.

LÖSUNG:
$out = preg_replace('/(.)\\1{3,}/sS', '$1', $in);

KOMPLETT ERLEDIGT!
 
Zurück