Hilfe bei REGEX
Hi,
Ich habe hier 5 Strings, die ich mit Script filtern sollte.
Kann mir jemand verraten, warum "^[-+]?(\d*\.?\d+|\d+\.)$" es nicht tut? Es sollte eigentlich richtig sein
+1000
3,1415926535
.05
42.
-1
Das Regex sollte möglichst wenig falsche Positivs liefern ...
Vielen Dank für die Hilfe, bin ein ziemlicher Anfänger bezüglich REGEX.
Gr,. I.
Ich habe hier 5 Strings, die ich mit Script filtern sollte.
Kann mir jemand verraten, warum "^[-+]?(\d*\.?\d+|\d+\.)$" es nicht tut? Es sollte eigentlich richtig sein
+1000
3,1415926535
.05
42.
-1
Das Regex sollte möglichst wenig falsche Positivs liefern ...
Vielen Dank für die Hilfe, bin ein ziemlicher Anfänger bezüglich REGEX.
Gr,. I.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283054
Url: https://administrator.de/forum/hilfe-bei-regex-283054.html
Ausgedruckt am: 21.04.2025 um 14:04 Uhr
9 Kommentare
Neuester Kommentar

Moin,
was willst du denn erreichen, bzw. davon genau extrahieren und in welchem Kontext Zeilenweise / Gesamt / mit MultiLine Option ?
PI fehlt dir weil du das Komma nicht berücksichtigt hast
Gruß jodel32
was willst du denn erreichen, bzw. davon genau extrahieren und in welchem Kontext Zeilenweise / Gesamt / mit MultiLine Option ?
PI fehlt dir weil du das Komma nicht berücksichtigt hast
^([-+]?\d*[\.,]?\d*)$

Dies ist eine Testaufgabe, wo dies als richtiges REGEX angegeben wurde.
Dann zitiere mal die ganze Aufgabe, du schmeißt hier einfach etwas hin ohne Kontext.Du willst also nur die Zahlen ohne das + oder - davor ?
Wenn du bei diesen Online-Tools die falschen Optionen setzt , z.B. vergisst die MultiLine-Option zu setzen erhältst du andere Ergbnisse als mit, da z.B. das ^ bei gesetzter MutliLine Option bedeutet am Anfang jeder Zeile und nicht nur am Anfang des kompletten Strings!
Das hier matcht alle deine Zahlen ohne das + oder - die Zahlen werden dann in einer matching Group gespeichert(Klammern):
[-+]?(\d*[\.,]?\d*)

Auf deine Zahlen passt dieser Regex nicht ! Wie ich oben schon gesagt habe...
Für deine Zahlen passt der in meinem ersten Post :
Aktivierte Optionen Global /Multiline
In der Sub-Capture-Group 1 sind dann nur die Zahlen
Für deine Zahlen passt der in meinem ersten Post :
^[-+]?(\d*[\.,]?\d+|\d+.)$
In der Sub-Capture-Group 1 sind dann nur die Zahlen

Öhm die haben kein Komma angegeben, weil das Amerikaner sind und keine Deutschen 
Die haben dort als Dezimaltrenner nur den Punkt
Die haben dort als Dezimaltrenner nur den Punkt

Dies erklärt allerdings nicht, warum sie +- nicht mitgecaptured haben ...
Der Grund ist, damit kein + oder - alleine ohne Zahl gecaptured wird. Denn die Capture-Group dahinter muss entweder die eine oder die andere Bedingung (welche mit | voneinander getrennt sind) erfüllen, ansonsten findet kein Match statt.