Hallo,
ich habe folgenden String:Phone-5 (WLAN, 121 / 150 Mbit/s, -65)
Nun möchte ich die letzten drei Zeichen vor der abschliessenden Klammer bekommen, also "-65". Hierzu habe ich folgende RegEx erfolgreich in https://regex101.com getestet:
.{3}(?=\))
Wenn ich nun aber diese RegEx in Verbindung mit data-part verwenden möchte, bekomme ich keinen Wert zurück.
data-part=".{3}(?=\))"
Habe es auch schon mit .* davor und danach probiert...
Hat jemand eine Idee? Vielleicht ein Bug?
Danke im Voraus,
Andreas
Du hast zwar ein Match, aber kein Capturing Group.
Probier mal z.B..*, (.*?)\)
Danke, das passt :)
Durch Optimierung meines Codes, möchte ich auch die RegEx verbessern, da sie bei einigen Zeichenfolgen nicht funktioniert.
Hier die Zeichenfolge:
Phone-5 (WLAN, 121 / 150 Mbit/s, -65)
Als Ergebnis soll nach wie vor -65 erscheinen, jedoch soll die Logik der RegEx von vorn suchen. Also z.B. die vierte, fünfte und sechste Stelle nach dem zweiten "/"
Bin für jede Hilfe dankbar.
Danke und Gruß
Andreas
Dann machst Du
- match / (musst Du escapen, dann => "\/")
- match alles, mehrmals
- match / (auch escapen)
Jetzt bist Du nach dem zweiten "/"
- match alles, 3 mal
- capturing group : match alles, 3 mal
regex101.com ist dein Freund
Habe jetzt mit Regex101.com ein funktionierendes Ergebnis (siehe Bild). Jedoch bleibt das Ergebnis im FTUI leer?! Irgendwie steig ich nicht dahinter :'(
Wenn ich mich richtig erinnere, baut data-part noch ^ am Anfang und $ am Ende der Regex. Deswegen sollte folgendes besser funktionieren:
.*\/...(...)\)
Hat funktioniert :).
Vielen Dank
Und hast Du verstanden warum? ;)
Nicht wirklich
data-part baut ^ am Anfang und $ am Ende der Regex ein. Das heisst, deine Regex sieht dann in Wirklichkeit so aus:
^.*\/.*\/...(...)$
^ => assume beginning of string = was da gematcht wird muss am Anfang des Strings sitzen. Da Du .* matchest ist es egal. Alles passt.
aber
$ => assume end of string => das heisst konkret "/-48" am Ende des Strings. Das ist aber nicht der Fall, da Du noch ein ) am Ende hast: "-48)"
Deswegen in meiner Regex das \) noch am Ende
Zitatdata-part baut ^ am Anfang und $ am Ende der Regex ein.
Ich überlege mir jedes Mal, ob das so optimal ist oder ob man das lieber ohne Hinzufügen machen sollte.
Das es mit ^ am Anfang und $ am Ende machmal ein anderes Ergebnis liefert also ohne (gerade bei mehrzeiligen Strings) ist klar, aber das Hinzufügen von ^ am Anfang und $ am Ende sollte den Regex sicherer machen.
Mach es das, oder ist man dadurch unflexibler?
Zitatdas Hinzufügen von ^ am Anfang und $ am Ende sollte den Regex sicherer machen.
Wieso?