Antwort an „Rolf B“ verfassen

Hallo Nico R.,

ich habe das jetzt mal in onlinephp.io probiert.

  • verwende bitte {1,3} statt {0,3}. Oder willst Du unbedingt ",50" erkennen können? Wenn ich {0,3} verwende, erhalte ich eine Menge "Nulltreffer".
  • lass die äußeren Klammern weg, die sind unnötig und erzeugen lediglich ein zweites Subarray im Ergebnis, das mit dem ersten Subarray identisch ist.
  • du kannst [0-9] mit \d abkürzen
  • wenn du außerhalb von [] nach einem Punkt suchen willst, musst Du ihn mit Backslash escapen, weil ein Punkt beliebige Zeichen matcht. Ich habe den Match auf - deshalb etwas geändert.
$a = "Hallo 321 und 123.45 oder 123,45 Welt 12,- für 12.- Euro";
$res = [];
preg_match_all("/\d{1,3}([,.](\d{2}|-))?/", $a, $res);
var_dump($res);

liefert mir in $res[0] alle 5 Zahlen.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen