für die nachfolgenden Beispiele verwendete ich Python 3.7 auf einem Win 10 - Rechner.
Code: Alles auswählen
import re
#Beispiel 1: a sollte 1-5 mal wiederholbar sein
if re.search(r"a{1,5}re", "aaaaaare"):
print ("Suche 1: übereinstimmend")
else:
print ("Suche 1: nicht übereinstimmend")
#Beispiel 2: [a] sollte genau 2 mal wiederholbar sein
if re.search(r"[a]{2}de", "aaaaaade"):
print ("Suche 2: übereinstimmend")
else:
print ("Suche 2: nicht übereinstimmend")
#Beispiel 3: [Yy] sollte genau 1 mal wiederholbar sein
if re.search(r"[Yy]{1}thon", "yyython"):
print ("Suche 3: übereinstimmend")
else:
print ("Suche 3: nicht übereinstimmend")
Bei allen drei Abfragen wird "... übereinstimmend" ausgegeben.
Das dürfte doch nicht sein.
In Beispiel 1 kommt das a sechs mal vor, meine Abfrage will aber 1 bis maximal 5 mal ein 'a'.
Ganz ähnlich verhält es sich für die nächsten zwei Beispiele.
Habe ich einen Logikfehler oder sonst etwas falsches programmiert?
Ich suche keinen Workaround, sondern den Grund für dieses Verhalten.
Vielen Dank für die Hilfe
Alfons