PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nochmal reguläre Ausdrücke...



MHage
08.12.23, 22:59
Guten Abend,

irgendwie bekomme ich langsam den Eindruck, dass ich mit regulären Ausdrücken echt auf kriegsfuß stehe...

Ich schreibe gerade mit Qt Creator eine kleine GUI für CyberGhost VPN. Wenn ich die Liste mit den Ländern abfrage, bekomme ich eine Liste zurück, die so aussieht:


+-----+----------------------+--------------+
| No. | Country Name | Country Code |
+-----+----------------------+--------------+
| 1 | Andorra | AD |
| 2 | United Arab Emirates | AE |
| 3 | Albania | AL |
| 4 | Armenia | AM |
| 5 | Argentina | AR |
| 6 | Austria | AT |
| 7 | Australia | AU |
| 8 | Bosnia & Herzegovina | BA |
| 9 | Bangladesh | BD |
| 10 | Belgium | BE |
| 11 | Bulgaria | BG |
| 12 | Bolivia | BO |
| 13 | Brazil | BR |
| 14 | Bahamas | BS |
| 15 | Belarus | BY |
| 16 | Canada | CA |
| 17 | Switzerland | CH |
| 18 | Chile | CL |


Im ersten Schritt habe ich die Leerzeichen rausgeschmissen. Die Zeile sieht dann so aus:
|10|Belgium|BE|

Dies steht dann in einer ComboBox als Auswahl. Um diese Auswahl weiter zu verarbeiten brauche ich nur das "BE" (als Beispiel). Genau das ist für mich gerade die Hürde...
Ich möchte also den String durchsuchen und den Landeskenner aus der dritten Spalte extrahieren.

Das sollte mit einem regulären Ausdruck wohl am Einfachsten gehen. Nur leider nicht für mich. :confused:

Könnte mir da jemand behilflich sein?

Vielen Dank, Matze

ThorstenHirsch
09.12.23, 00:08
\|.*\|\s*([A-Z]+)\s*\|
Test: https://regex101.com/r/Va9DuR/1

P.S.: ChatGPT ist da auch ganz gut.

MHage
09.12.23, 06:51
\|.*\|\s*([A-Z]+)\s*\|
Test: https://regex101.com/r/Va9DuR/1

P.S.: ChatGPT ist da auch ganz gut.

Moin!
Vielen Dank für deine Hilfe.
ChatGPT - da bin ich noch gar nicht drauf gekommen :cool:

Hast du mal ein Beispiel dafür? Mir ist gerade noch nicht ganz klar wie man das dafür verwenden kann.

marce
09.12.23, 08:28
Frag einfach ChatGPT z.B. "schreibe mir einen regulären Audruck, der mir die 3. Spalte einer mit ; getrennten Tabelle ausgibt"

Huhn Hur Tu
21.12.23, 08:12
In Bash wuerde ich sowas machen


cat sourcefile | grep -A100 1 | awk -F"|" '{print $4}' | grep -Eo "[A-Z]"*

Huhn Hur Tu
21.12.23, 08:13
Oder packe es in eine flatfile DB und lese es per SQL aus

temir
21.12.23, 09:42
Hmm, die Ausgabe der Liste sieht bereits so aus, als wenn sie aus einer DB kommt.
Und die erste Spalte könnte ein Index sein.

Evtl. die Ausgabe anders formatiert ausgeben? Kommasepariert oder sonstiges...
Statt checkbox - dropdown list? - man könnte auch für einen Menschen nicht benötigte Werte einfach verstecken,
aber dem PGM drunter nach der Auswahl übergeben (Spalte 1).

Huhn Hur Tu
22.12.23, 10:55
Wie gesagt, wandele es um wie in meinem Beispiel, was auch immer deine Sprache hergibt, muss ja nicht zingend in einer Regexp sein. ODER schau was die dein Werkzeug zum Abgfragen so als Format Optionen kann