Python scheint keine Literale mit regulären Ausdrücken wie Perl und Ruby zu haben
Importieren Sie das Modul re, wenn Sie reguläre Ausdrücke verwenden
import re
Wenn Sie einem Zeichenfolgenliteral r voranstellen, wird die Escape-Sequenz für diese Zeichenfolge deaktiviert. (So etwas wie @ "~" in C #)
"C:¥¥My Document¥¥fire¥¥test.txt"
Zu
r"C:¥My Document¥fire¥test.txt"
Kann geschrieben werden.
Es scheint, dass r Kapital sein kann.
R"C:¥My Document¥fire¥test.txt"
import re
m = re.match(r"FIRE[0-9]+", "FIRE123")
if m:
print("abgestimmt")
else:
print("Nicht passend")
Neben der Übereinstimmungsmethode gibt es auch eine Suchmethode. Die Übereinstimmungsmethode prüft, ob sie zuerst übereinstimmt, und die Suchmethode prüft, ob sie in der Mitte der Zeichenfolge übereinstimmt.
m = re.match(r"FIRE[0-9]+", "Python FIRE123") #Nicht übereinstimmen
m = re.search(r"FIRE[0-9]+", "Python FIRE123") #Spiel
m = re.search(r"([a-z]+)\s*=\s*([0-9]+)", "index = 123")
if m:
print(m.group(0)) # -> "index = 123"
print(m.group(1)) # -> "index"
print(m.group(2)) # -> "123"
Die benannte Gruppe ist (? P
m = re.search(r"(?P<name>[a-z]+)\s*=\s*(?P<value>[0-9]+)", "index = 123")
if m:
print(m.group(0)) # -> "index = 123"
print(m.group(1)) # -> "index"
print(m.group(2)) # -> "123"
print(m.group('name')) # -> "index"
print(m.group('value')) # -> "123"
m = re.match(r"abc([0-9]+).([0-9]+)", "abc123.456")
#---Ganzes Spiel
print(m.start()) # -> 0
print(m.end()) # ->10 * Ende ist die nächste übereinstimmende Position (Index)+Der Wert 1) wird zurückgegeben
print(m.span()) # -> (0, 10)Gibt Start und Ende als Taple zurück
#---Gruppe 1
print(m.start(1)) # -> 3
print(m.end(1)) # -> 6
print(m.span(1)) # -> (3, 6)
#---Gruppe 2
print(m.start(2)) # -> 7
print(m.end(2)) # -> 10
print(m.span(2)) # -> (7, 10)
reg = re.compile(r"ABC([0-9]+)")
m = reg.match("ABC888")
print(m.group(1)) # -> "888"
match_list = re.findall(r'([0-9]+)', "123a456b789")
print(match_list) # -> ['123', '456', '789']
Recommended Posts