Regex nur letzter Treffer
Alex
- php
0 hawkmaster0 Alex
Hallo,
$str = '<p>alpha 1 , 10 beta 3.000,30 gamma omega<p>';
Daraus möchte ich nur die letzte Zahl: 3.000,30
Deshalb benutze ich:
// das Suchmuster
$pattern = '/\b[\d,.]+\b/i';
// auswerten
preg_match_all($pattern, $str, $array);
und erhalte:
[0] => 1
[1] => 10
[2] => 3.000,30
Ich kann zwar mit einer mit einer arrayfunktion den letzten Wert bestimmen, aber lässt sich das nicht irgendwie direkt im pattern integrieren?
Alex
Hallo
sind denn die Wörter "beta" und "gamma" immer drin oder können die auch ganz anders heissen?
viele Grüße
hawk
Hi,
sind denn die Wörter "beta" und "gamma" immer drin oder können die auch ganz anders heissen?
Kann alles mögliche drin stehen, geht halt nur darum die letzte Zahl zu matchen.
Alex
Hi,
Kann alles mögliche drin stehen, geht halt nur darum die letzte Zahl zu matchen.
Also willst du nach einer "Zahl" suchen, ggf. gefolgt von was beliebigem, was nicht "Zahl" ist, gefolgt vom Stringende.
Also ungefaehr sowas wie /([\d,.]+)\D*$/
MfG ChrisB
Hi,
Also ungefaehr sowas wie /([\d,.]+)\D*$/
Danke sehr, funktioniert.
Ich werde das mit den Regex wohl nie lernen, was genau macht dein Pattern?
Ich weiss was \D ist und auch das $ der rechte Rand/Ende ist, aber begreifen tu ich es noch nicht.
Alex
Also ungefaehr sowas wie /([\d,.]+)\D*$/
Ich werde das mit den Regex wohl nie lernen, was genau macht dein Pattern?
Ich weiss was \D ist und auch das $ der rechte Rand/Ende ist, aber begreifen tu ich es noch nicht.
Ist es denn ein grundsätzliches Verständnisproblem? So komplex ist dieser Ausdruck ja nicht. Hast du ihn mal gedanklich in seine Bestandteile zerlegt und überlegt, wie diese zusammenarbeiten?