Das folgende Python-Code:Regex mit Lookbehind nicht funktioniert mit re.match
import re
line="http://google.com"
procLine = re.match(r'(?<=http).*', line)
if procLine.group() == "":
print(line + ": did not match regex")
else:
print(procLine.group())
nicht erfolgreich übereinstimmen, und gibt den folgenden Fehler:
Traceback (most recent call last): File "C:/Users/myUser/Documents/myScript.py", line 5, in if procLine.group() == "": AttributeError: 'NoneType' object has no attribute 'group'
Wenn ich die Regex mit nur ersetzen. * Es funktioniert gut, was darauf hindeutet, dass es die Regex ist, die irrtümlich ist, aber auf https://regex101.com/, wenn ich meine Regex und String für Python Geschmack zu testen scheint es gut zu entsprechen.
Irgendwelche Ideen?
Vielleicht möchten Sie 'search' verwenden stattdessen überprüfen [Dokumentation] (https://docs.python.org/ 3/library/re.html # regular-expression-syntax): "Beachten Sie, dass Muster, die mit positiven Lookbehind-Assertions beginnen, am Anfang des gesuchten Strings nicht übereinstimmen; Sie werden wahrscheinlich eher die search() - Funktion verwenden wollen als die match() -Funktion " – niemmi