Mailinglisten-Archive |
René Thiel wrote: > ich möchte in einem String die Wiederholungen *beliebiger* > Zeichenfolgen auf 3 reduzieren. Beispiel: ";-) ;-) ;-) ;-) ;-) ;-) > ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)" > Ergebnis: ";-) ;-) ;-)" > Hat da jemand einen Vorschlag? Das Problem erstmal in verschiedene Teilprobleme zerlegen ;-) 1. Finden der sich wiederholenden Zeichenkette. Sequentiell einen Teilstring aufbauen (bis zu einer maximalen Länge) und prüfen, ob auf den Teilstring nochmals der Teilstring folgt -> Muster gefunden. 2. Finden einer Gruppe dieser Zeichenkette und eventuelles Reduzieren, das sollte ganz gut mit Regulären Ausdrücken gehen. Die Problemstellung ist aber zu spezifisch, als das ich jetzt mal auf die Schnelle ein paar Codeschnipsel aus dem Ärmel schüttel. Sollte aber nicht wirklich aufwendig sein (2-3 Stunden). Das Problem kann aber beliebig kompliziert werden, wenn das Muster auch noch irgendwo im Text steht und beliebig lang ist. Das Muster zu finden ist auf jeden Fall ein rekursives Suchverfahren und damit langsam bei grossen Datenmengen. -- Andreas Lange
php::bar PHP Wiki - Listenarchive