Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu "preg_replace"

Einklappen

Neue Werbung 2019

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

  • Frage zu "preg_replace"

    Hi,

    ich habe da mal eine Frage zu preg_replace. Das folgende Suchmuster arbeitet anstandslos. Nur ersetzt es die gefundenen Suchmuster durch drei "x" Zeichen. Wie kann ich es erreichen, das hier in den gefundenen Suchmustern jeweils das Leerzeichen entfernt wird. Hoffe, Ihr könnt mir helfen

    PHP-Code:
    $text="Die Telefonnummern 0162/ 1234567 sowie 0160- 123456 und (01577) 1234567 sollen im Zieltext ohne Leerzeichen angezeigt werden.";
    $text=preg_replace ("/[0-9]{4,5}(\)|\-|\/) [0-9]{4,}/","xxx",$text);
    echo 
    $text;
    // gewünschte Ausgabe: Die Telefonnummern 0162/1234567 sowie 0160-123456 und (01577)1234567 sollen im Zieltext ohne Leerzeichen angezeigt werden. 

  • #2
    Schau dir mal preg_replace_callback() an.

    Kommentar


    • #3
      Du must deine Teilsuchmuster gruppieren (runde Klammern), dann kannst du beim Ersetzen darauf mit $1 usw. zurückgreifen oder auch nicht, für ?:
      (?: ) erzeugen keine sog. Back Rreferences.
      PHP-Code:
      $text=preg_replace ("/([0-9]{4,5}(?:\)|\-|\/)) ([0-9]{4,})/","$1$2",$text); 

      Kommentar


      • #4
        Ich würde anstatt des Leerzeichens auf das Metazeichen \s setzen, dann hast du alle Leerzeichen abgedeckt, und für den Fall, dass es mehr als 1 Leerzeichen ist, kannst du das + dahinter verwenden.
        PHP-Code:
        $text=preg_replace ("/([0-9]{4,5}(?:\)|\-|\/))(\s+)([0-9]{4,})/","$1$3",$text); 
        Misst du halt abwägen, wie du es brauchst.

        Kommentar


        • #5
          Uuups, falsch!
          gruss sys

          Kommentar


          • #6
            Jau danke, das wars

            Kommentar

            Lädt...
            X