Timo: Regex: Alle Zahlen aus String filtern

Beitrag lesen

Hi,

wie kann ich alle echten Zahlenwerte aus einem String filtern, auch wenn darunter Trennzeichen sind.

zb.
str = 'id=xyz><d difopfwf9 <b>555</b> kewffoop ew43534 22.9877 fd<sdr ^ 4ffkp <p>reew 33p efjfi 189,4348 xx</b>2001<b>xx<html>r fei/jefw 8)( ewfd9e730ß 0,0044889  00.0044889 fdl 12.388.444,24 r4rßß 0 <b>44-55</b> rkfr0<tt>dfrfwrigp';

*Der String ist zum testen absichtlich so chaotisch

Das Ergebnis sollte liefern:
555
229877
189.4348
0.0044889
0.0044889
12388444.24
0
4455

Ein Zahl soll richtig sein, wenn sie nicht direkt an ein anderes Zeichen angrenzt mit Ausnahme von typischen Trennern wie "," und "." und mit Ausnahme "innerhalb" Tag-Klammern. <b> 555</b> ist also ein Zahl. </b>333<b> wäre keine. <b>44-55</b> ist eine Zahl, dfdff 44-55 fdfd auch,
rtr44-55fdgfdg alerdings nicht. Auch sollte das Ergebnis in diesem Fall die Zahl ohne Trenner also 4455 zurückliefern. Oder aus 12.388.444,24 sollte 12388444.24 werden.

Ich versuche mich da jetzt schon seit 2 Tagen dran und habe leider auch kaum Ahnung von Regex. Meine Vorgehensweise erzeugt endlos lange Ausdrücke die immer abwechslend nach Buchstaben und Zahlen sucht aber so komme ich nicht weiter: id=xyz(\d+)(\D+)(\d+).*.....usw

Ist mein Vorhaben uberhaupt realistisch mit Regex zu lösen?

Timo