Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Doppelte Zeichen inklusive Leerzeichen ersetzen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Doppelte Zeichen inklusive Leerzeichen ersetzen

    PHP-Code:
    $str 'Hhhhhh hhhhhhhhaaaaaaa aaaaaallllll lllLLllllooooo oooooo!!!!!!! !!!!!!!';
    echo 
    preg_replace('/( ?.)\1{4,}/i','$1$1$1',$str); 
    Hallo Leute

    Ich möchte gerne: Doppelte Zeichen inklusive Leerzeichen ersetzen

    Ergebnis: HHH hhhaaa aaalll lllooo ooo!!! !!!

    Wunsch: Hhhaaalllooo!!! (oder zumindest annähernd)

    Das ' ?' (bzw. '\s?') im regulären Ausdruck hat leider keine Wirkung.

    Wie muss der reguläre Ausdruck aussehen?

    Der obige Code ist getestet. Getestete Antworten wären daher klasse.

    Vielen Dank im Voraus.

  • #2
    Tieferer Sinn? Doppelte "Zeichen" (nennt man auch Buchstaben) sind normaler Teil der deutschen Grammatik. Und wer Dich ärgern will, der schafft das auch. Mit oder ohne Deinen Pseudofilter.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      PHP-Code:
      <?php echo preg_replace('/(?:(?P<P>\\p{L})\\s*)(?=\\k<P>)/u''', <utf8-string>);
      Was hast du vor?

      Kommentar


      • #4
        Danke nikosch. Ich meine aber nicht nur Buchstaben sondern alle Zeichen. Und was ich versuche ist, Kindergarten-Begrüßungen im Chat etwas weniger unerwachsen aussehen zu lassen.

        Danke rkr. Deine Lösung ist fast schon, was ich meinte. Naja, es kürzt hier etwas zuviel und an anderer Stelle gar nicht.

        Gibt es keine Lösung, die meiner Wunsch-Angabe näher kommt, bei der der zweite Parameter so '$1$1$1' aussieht ?

        Noch eine Frage, die mich beschäftigt, ist, warum das ' ?' (bzw. '\s?') keine Wirkung hat.


        PHP-Code:
        $str 'Hhhhhh hhhhhhhhaaaaaaa aaaaaallllll lllLLllllooooo oooooo!!!!!!! !!!!!!!';
        echo 
        preg_replace('/( ?.)\1{4,}/i','$1$1$1',$str); 
        Wunsch: Hhhaaalllooo!!! (oder zumindest annähernd)

        Kommentar


        • #5
          Zähl die Wörter, zähl die Anzahl der doppelten Zeichen und steig bei einem ungewöhnlichen Verhältnis beider Größen aus dem Kommunikationsprozess aus. So würde ichs machen. Kein Grund, irgendwelchen Trollen die Beiträge hübsch zu machen, anstatt sie rauszuschmeißen.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar

          Lädt...
          X