Alex: Regex nur letzter Treffer

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

  1. Hallo
    sind denn die Wörter "beta" und "gamma" immer drin oder können die auch ganz anders heissen?

    viele Grüße
    hawk

    1. 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

      1. 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

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. 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

          1. 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?

            --
            Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
            Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|