RegEX Flags
Hallo Forum,
hat schonmal jemand erfolgreich Flags bei Regulären AUsdrücken setzen können?
Wenn ich die z. B. die Funktion extractx(Textfeld, "[a-z]{4}.*") ohne Flag nutze funktioniert alles wunderbar.
Sobald ich extractx(Textfeld, "[a-z]{4}.*", "m") nutze, sucht er mir nur das "m". Wie wird der Flag richtig gesetzt?
Danke für jede Hilfe!
Tobias
13 Antworten
-
Hallo Tobias,
um Flags zu setzen, nutze bitte die Variante mit vier Parametern:
extractx(Text, RegExp, Flags, "$0")
Im letzten Argument kann ein beliebiger Text angegeben werden, $0 wird durch den Match der RegExp ersetzt, $1 durch den Match der ersten Klammer der RegeExp etc.
Beispiel:
extractx("Hello 42 Test", "[0-9]+", "i", "Ergebnis: $0")
=> "Ergebnis: 42"extractx("Hello 12,18 Test", "([0-9]+)\,([0-9]+)", "i", "Vor dem Komma: $1, Nach dem Komma: $2")
=> "Vor dem Komma: 12, Nach dem Komma: 18" -
Hallo Frank,
super, danke, das werde ich probieren. Das erlaubt ja wirklich ein "chirurgisches" Auseinandernehmen von Text.
Ich habe nämlich die komplexe Aufgabe folgenden String in seine einzelteile zu zerlegen:
"2017 Ingelheimer Grüner Silvaner trocken* 0,75 l
Das Bukett wird bestimmt durch den Duft von Orange, reifer gelber Birne, im Einklang mit Noten nach Holunder und Heu. Im Geschmack saftig straff und fein gepaart mit roter Grapefruit.2828 13,0 % vol. 4,1 g/l RZ € 9,99 1L: € 13,32"
Alles in Anführungszeichen ist ein kompletter Textstring
Dabei gilt es Jahrgang, Name, Geschmack, Menge, die Beschreibung (Kursiv), Artikelnummer, Alkoholgehalt (%vol.) Restzuckergehalt (g/l), Preis und Literpreis in einzelne Felder zu extrahieren... puh
Beste Grüße
Tobias
-
An diesem RegEx-Ding hatte ich mich auch schon mal versucht, bin da aber trotz Webrecherche nicht durchgestiegen. Soll ja so ähnlich aufgebaut sein wie bei JavaScript (oder?). Hat vielleicht jemand einen Link mit einer einfachen Erklärung für Doofe?
-
Danke, werde ich mir mal anschauen. Die Hoffnung stirbt zuletzt ... ;)
-
Es gibt auch diese Online RegEx tester.... die find ich ganz hilfreich
oder
oder gar
-
Danke Tobias, das könnte sehr hilfreich sein.
Zum Thema "Erklärung für Doofe" habe ich auch noch das hier gefunden:
https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/
Werde ich mir die Tage alles mal in Ruhe zu Gemüte führen und versuchen, in einfacher Form mit Ninox umzusetzen.
-
Ich habe das Problem, dass die Flags bei mir ignoriert werden.
Ich filter per RegEx einen String, doch er gibt mir immer nur den ersten Match aus.
Habs schon mit extractx(Ergebnis, "text...(\d+-\d+-\d+)", "gi", "$1")
Laut Ergebnis und Regex101.com müsste er aber mehrere Matches finden.
Hat jemand ne Idee? -
Hast Du mal nen Beispiel String? Ich bin jetzt zuletzt mit den Gruppen ganz gut klargekommen. Das war ein wertvoller Hinweis....
-
Die Gruppen funktionieren. Nur hört nach dem ersten Match auf.
Beispiel:
String: is there another is
RegEx: extractx(Ergebnis, "(is)", "g", "$1")
Er gibt nur einmal is, aus.
-
Stimmt, macht er bei mir auch.
Versuch doch jedes "is" in eine Gruppe zu legen.
extractx("is there another is", "(is).*(is)" ,"g", "$1 $2")
-
Das Problem ist, dass ich in meinem String eine unbestimmte Anzahl an Ergebnissen habe. Da ich nicht weiß, wie viele Ergebnisse ich habe, kann ich auch nicht mit Gruppen arbeiten.
-
Das Problem ist, dass ich in meinem String eine unbestimmte Anzahl an Ergebnissen habe. Da ich nicht weiß, wie viele Ergebnisse ich habe, kann ich auch nicht mit Gruppen arbeiten.
Content aside
- vor 6 JahrenZuletzt aktiv
- 13Antworten
- 5381Ansichten