Alle Zeichen bis auf Zahlen entfernen

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

  • Alle Zeichen bis auf Zahlen entfernen

    Hi,

    ich suche nach der besten Möglichkeit alle Zeichen, bis auf Zahlen aus einem String zu entfernen. Also so, dass wirklich Zahl hinter Zahl steht: ab47c1d59 --> 47159

    Meine Überlegungen:

    a) Ich könnte den String Zeichen für Zeichen durchgehen und prüfen, ob das angegebene Zeichen eine Zahl ist. Jedoch ist das ziemlich heavy wenn der Text so 1 Mio Wörter umfasst.

    b) Ich führe ein preg_match_all für Zahlen aus und anschließend ein implode für das Array, welches die Zahlen enthält.

    Gibt es bessere oder noch andere Möglichkeiten, dies effektiv durchzuführen?

    gruß
    Piremilok

  • #2
    PHP-Code:
    $number preg_replace('/[^0-9]/''''ab47c1d59'); 

    Kommentar


    • #3
      Zitat von Piremilok Beitrag anzeigen
      Hi,

      ich suche nach der besten Möglichkeit alle Zeichen, bis auf Zahlen aus einem String zu entfernen. Also so, dass wirklich Zahl hinter Zahl steht: ab47c1d59 --> 47159
      Du meintest sicher Ziffern ...

      Verwende das angegebene Beispiel mit preg_replace().

      Für den Fall, dass du auch Ziffern "einfangen" möchtest, die nicht im ASCII-Bereich von \x30 bis \x39 stehen, greifst du auf die Zeichenklasse "\d" zurück:

      PHP-Code:
      $src 'abc1²³45'
      $dst preg_replace('/\D+/'''$src); 
      ... und für Unicode-Ziffern auf die Zeichenklasse "\P{Nd}":

      PHP-Code:
      $src 'abc1²³45 H₂O blubb'
      $dst preg_replace('/\P{Nd}+/'''$src); 
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar

      Lädt...
      X