String mit RegEx durchsuchen

OP #7364036
Lesenswert?

Ich möchte einen String mit RegEx durchsuchen. Hier möchte ich z.B. beim String: "wecker 80%"

...den String "80" extrahieren. Dafür hätte ich nun diesen Code verwendet: .([0-9]{1,3})%.

Die {1,3} verwende ich, da der Wert zw. 0 und 100 sein kann. Ich erhalte aber immer nur die letzte Zahl (die 0) zurück. Kann mir jemand sagen wie ich dem Regex mitteilen kann, dass ich den maximal möglichen String (die 80) erhalten möchte, und nicht den kleinsten (die 0)?

Verwenden möchte ich den Code für Javascript.

OP #7364061
Lesenswert?

Ich hatte das ganze auf dieser Seite hier getestet: https://regex101.com/

Nun habe ich das selbe auf einer anderen Seite probiert und da wird es mir so ausgegeben, wie ich es erwartet hätte: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_regexp

Ich bekomme dort alse den maximalen String zurück. Wenn ich das ganze nun in meinen Code implementiere, wir mir ebenfalls der maximale String wiedergegeben. Warum auch immer, aber an der RexEx-Suche scheint es wohl nicht gelegen zu haben. Mein Problem ist nun aber weg :)

#7364167
Lesenswert?

Hans W. schrieb:

Ich möchte einen String mit RegEx durchsuchen. Hier möchte ich z.B. beim String: "wecker 80%"

...den String "80" extrahieren. Dafür hätte ich nun diesen Code verwendet: .([0-9]{1,3})%.

Die {1,3} verwende ich, da der Wert zw. 0 und 100 sein kann. Ich erhalte aber immer nur die letzte Zahl (die 0) zurück.

Greedy Matching mit ? ausschalten, sonst frißt Dein anfängliches .* alle Ziffern vor der letzten ({1,) vor dem % -- ".*? ([0-9]+)%" sollte gehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren