Erste Einführung in reguläre Python-Ausdrücke
Ein regulärer Ausdruck ist eine spezielle Zeichenfolge, die verwendet wird, um zu bestimmen, ob eine Zeichenfolge mit der von uns festgelegten Zeichenfolge übereinstimmt, d. h. um zu überprüfen, ob eine Zeichenfolge mit einem bestimmten Muster übereinstimmt.
Python hat seit Version 1.5 das re-Modul hinzugefügt, das Muster für reguläre Ausdrücke im Perl-Stil bereitstellt. Das re-Modul erweitert die Python-Sprache um die volle Funktionalität regulärer Ausdrücke.
Im Folgenden finden Sie eine schrittweise Einführung in reguläre Ausdrücke anhand von Beispielen.
Um beispielsweise herauszufinden, ob eine Zeichenfolge ein bestimmtes Zeichen oder bestimmte Zeichen enthält, verwenden wir normalerweise integrierte Funktionen wie folgt:
# 设定一个常量 a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU' # 判断是否有 “两点水” 这个字符串,使用 PY 自带函数 print('是否含有“两点水”这个字符串:{0}'.format(a.index('两点水') > -1)) print('是否含有“两点水”这个字符串:{0}'.format('两点水' in a))
Das Ausgabeergebnis lautet wie folgt:
是否含有“两点水”这个字符串:True 是否含有“两点水”这个字符串:True
Was ist, wenn Sie reguläre Ausdrücke verwenden?
Wie gerade erwähnt, versorgt uns Python mit Re Modul, um alle Funktionen regulärer Ausdrücke zu realisieren, dann verwenden wir zunächst eine der Funktionen:
re.findall(pattern, string[, flags])
Diese Funktion erkennt alle Teilzeichenfolgen, die mit dem regulären Ausdruck in der Zeichenfolge übereinstimmen, und erstellt eine Liste, um das Spezifische zurückzugeben Die Operationen sind wie folgt:
rrree Das Ausgabeergebnis von e:
import re # 设定一个常量 a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU' # 正则表达式 findall = re.findall('两点水', a) print(findall) if len(findall) > 0: print('a 含有“两点水”这个字符串') else: print('a 不含有“两点水”这个字符串')
Wie Sie dem Ausgabeergebnis entnehmen können, kann es dieselbe Funktion wie die integrierte Funktion erreichen, es sollte jedoch auch hier betont werden, dass das obige Beispiel der Fall ist Nur um unser Verständnis regulärer Ausdrücke zu erleichtern. Die Art und Weise, wie dieser reguläre Ausdruck geschrieben wird, ist bedeutungslos. Warum sagst du das?
Da das Problem mit den integrierten Funktionen von Python gelöst werden kann, müssen wir keine regulären Ausdrücke verwenden. Dies ist unnötig. Darüber hinaus wird die Einstellung des regulären Ausdrucks im obigen Beispiel zu einer Konstante und nicht zu einer Regel für reguläre Ausdrücke. Die Seele regulärer Ausdrücke liegt in Regeln, daher ergibt dies keinen großen Sinn.
Wie schreibt man also die Regeln regulärer Ausdrücke? Machen Sie sich keine Sorgen, wir machen es Schritt für Schritt. Beginnen wir mit einem einfachen Schritt: Finden Sie alle Kleinbuchstaben in der Zeichenfolge. Zuerst schreiben wir die regulären Ausdrucksregeln in den ersten Parameter der Funktion findall, wobei [a-z] mit allen Kleinbuchstaben übereinstimmt und der zweite Parameter nur die abzugleichende Zeichenfolge ausfüllen muss. Die Details lauten wie folgt:
['两点水'] a 含有“两点水”这个字符串
Ausgabeergebnis:
import re # 设定一个常量 a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU' # 选择 a 里面的所有小写英文字母 re_findall = re.findall('[a-z]', a) print(re_findall)
Auf diese Weise erhalten wir alle Kleinbuchstaben in der Zeichenfolge.