Warum führt der RegEx-Ausdruck .*? nicht zum gewünschten Ergebnis?
Verfasst: Samstag 23. Dezember 2023, 13:06
Hallo,
schaut euch bitte einmal folgenden regulären Ausdruck an:
https://pythex.org/?regex=((%5Cw%7B3%7D ... &verbose=0
Ich suche nach dem String
ABC/0-22/1111/10/AAAD-11/333/15/ZZZK
Die Buchstaben und Zahlen können variieren, und nach den ersten 4 Stellen sind bestimme Variationen möglich, z.B.
ABC/0 AK 22/1111/10/AAAD-11/333/15/ZZZK
DEF/9 ENZ UV 33/4444/55/DDDD-55/444/22/AAAA
ABC/0 TTL - VV 22/1111/10/AAAD-11/333/15/ZZZK
Der blaue Syntax bleibt immer gleich, der rote Syntax variiert.
Nun dachte ich, ich könne den roten Bereich mit dem RegEx .*? abdecken, weil das Fragezeichen bewirken soll "so wenig Zeichen wie möglich".
Doch in meinem Fall bewirkt .*? exakt das gleiche wie .*
Das hat zur Folge, dass in meinem Beispiel oben (siehe URL) als Ergebnis Match 1/1 nicht
ABC/0-22/1111/10/AAAD-11/333/15/ZZZK
gefunden wird
sondern der komplette String
111/0/KKK (10.100.20.100)|HH-1-1-A1|dfadsfasdf|ABC/0-22/1111/10/AAAD-11/333/15/ZZZK
Warum ist da so?
schaut euch bitte einmal folgenden regulären Ausdruck an:
https://pythex.org/?regex=((%5Cw%7B3%7D ... &verbose=0
Ich suche nach dem String
ABC/0-22/1111/10/AAAD-11/333/15/ZZZK
Die Buchstaben und Zahlen können variieren, und nach den ersten 4 Stellen sind bestimme Variationen möglich, z.B.
ABC/0 AK 22/1111/10/AAAD-11/333/15/ZZZK
DEF/9 ENZ UV 33/4444/55/DDDD-55/444/22/AAAA
ABC/0 TTL - VV 22/1111/10/AAAD-11/333/15/ZZZK
Der blaue Syntax bleibt immer gleich, der rote Syntax variiert.
Nun dachte ich, ich könne den roten Bereich mit dem RegEx .*? abdecken, weil das Fragezeichen bewirken soll "so wenig Zeichen wie möglich".
Doch in meinem Fall bewirkt .*? exakt das gleiche wie .*
Das hat zur Folge, dass in meinem Beispiel oben (siehe URL) als Ergebnis Match 1/1 nicht
ABC/0-22/1111/10/AAAD-11/333/15/ZZZK
gefunden wird
sondern der komplette String
111/0/KKK (10.100.20.100)|HH-1-1-A1|dfadsfasdf|ABC/0-22/1111/10/AAAD-11/333/15/ZZZK
Warum ist da so?