Seite 1 von 1

Regex...ich dreh durch

Verfasst: Samstag 16. November 2019, 02:54
von tom.somebody
Hi, ich bin gerade dabei Python zu lernen und nun bei Regex gelandet...Also etwas mit dem Code rumgespielt und ich bekomme irgendwie nicht die erwartete Ausgabe und ich check nicht warum. Ich sitze da schon eine knappe Stunde dran und komme kein Stück weiter...ich komme mir echt dumm vor. Kann vielleicht einer von euch bitte den folgenden Code anschauen und mir eventuell erklären, warum ich beim Aufruf von gefunden.group(2) nur einen leeren String erhalte. Demjenigen wäre ich mega dankbar. Echt jetzt!

Code: Alles auswählen

import re
suchstring = 'Vorname: Hans Nachname: Meiser ist der geilste!'
name_regex = re.compile(r'Vorname: (.*) Nachname: (\w*?)')
name_gefunden = name_regex.search(suchstring)
print(name_gefunden.group(1)) # Die Ausgabe passt und ich erhalte Hans
print('AAaaaahhhhhhh!' if name_gefunden.group(2) == '' else name_gefunden.group(2)) # Hier bekomme ich einen leeren String und ich check nicht warum. Ich sollte mMn Meiser erhalten. 

Re: Regex...ich dreh durch

Verfasst: Samstag 16. November 2019, 11:53
von __blackjack__
@tom.somebody: Das Fragezeichen sagt ”die kürzeste Möglichkeit”, und das "*" sagt 0 bis unendlich viele Treffer. Bei 0 bis irgendwas ist 0 das kürzeste, also bekommst Du die leere Zeichenkette zwischen dem Leerzeichen und dem "M" von "Meiser" als Treffer.

Re: Regex...ich dreh durch

Verfasst: Samstag 16. November 2019, 13:49
von tom.somebody
LOL...wie dumm von mir. :oops:

@__blackjack__: Vielen Dank für deine Antwort. Der Groschen ist jetzt angekommen :D ...nur das ? weglassen. Also nochmal danke und du hast'ne coole Signatur.