Hier ist der reguläre Ausdruck von "Zeit" durch Python.
pattern_date = r'((0?|1)[0-9]|2[0-3])[:Zeit][0-5][0-9]Protokoll?'
# OK
#1:10
# 1:10
# 01:56
# 10:06
# 12:34
# NG
# 99:99
Die Umgebung verwendet Google Colaboratory. Die Python-Version ist unten.
import platform
print("python " + platform.python_version())
# python 3.6.9
Das verwendete Tool zur Überprüfung regulärer Ausdrücke: https://regex101.com/ Während wir hier prüfen, erstellen wir einen regulären Ausdruck und implementieren ihn in den Code.
Dies ist auch über Python-reguläre Ausdrücke im Allgemeinen leicht zu verstehen. https://qiita.com/luohao0404/items/7135b2b96f9b0b196bf3
Schreiben wir den Code sofort. Importieren Sie zunächst die Bibliothek für die Verwendung regulärer Ausdrücke.
import re
Als allererstes 12:34 Erstellen wir einen regulären Ausdruck, der der Zeichenfolge entspricht.
pattern = r'12:34'
Natürlich ist dies eine genaue Übereinstimmung, also stimmt es überein. Lassen Sie uns mit dem Code überprüfen.
pattern = r'12:34'
string = r'12:34'
prog = re.compile(pattern)
result = prog.match(string)
if result:
print(result.group())
# 12:34
Die übereinstimmende Zeichenfolge wird angezeigt. Der Einfachheit halber wird von nun an nur noch das Muster des regulären Ausdrucks beschrieben.
Neben "12:34" gibt es noch andere Zeiten wie "01:56" und "10:06". Die regulären Ausdrücke, die diesen entsprechen, lauten wie folgt.
pattern = r'\d\d:\d\d'
Die verwendeten regulären Ausdrücke sind:
Brief | Erläuterung |
---|---|
\d | Irgendeine Nummer |
Beispiel | Passende Zeichenfolge |
---|---|
\d\d | 12, 34, 01, 56, 10, 06 |
Der obige reguläre Ausdruck kann leichter ausgedrückt werden.
pattern = r'\d{2}:\d{2}'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
{m} | Wiederholen Sie m-mal des vorherigen Zeichens |
Beispiel | Passende Zeichenfolge |
---|---|
\d{2} | 12, 34, 01, 56, 10, 06 |
Dies führt jedoch auch zu einer unmöglichen Zeitzeichenfolge wie "99:99".
Dieses Mal erlauben wir nur die folgenden Bedingungen als hh: mm-Format.
Der modifizierte reguläre Ausdruck lautet wie folgt.
pattern = r'([01][0-9]|2[0-3]):[0-5][0-9]'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
[abc] | a,b,Jeder Brief von c |
Beispiel | Passende Zeichenfolge |
---|---|
[01][0-9] | 00~09, 10~19 Das heißt, 00~19 |
2[0-3] | 20~23 |
[0-5][0-9] | 00~09, 10~19, …, 50~59 Das heißt, 00~59 |
Ich habe auch die folgenden regulären Ausdrücke verwendet:
Brief | Erläuterung |
---|---|
(abc|efg) | Entweder abc oder efg string |
Beispiel | Passende Zeichenfolge |
---|---|
([01][0-9]|2[0-3]) | 00~19 oder 20~23 Das heißt, 00~23 |
Sie haben jetzt einen regulären Ausdruck, der nur den oben genannten Bedingungen entspricht.
Dies erlaubt Ihnen jedoch nicht, Dinge zu nehmen, die nicht 0-gepolstert (0-gepolstert) sind, wie z. B. "1:10". Der modifizierte reguläre Ausdruck lautet wie folgt.
pattern = r'((0?[0-9]|1[0-9])|2[0-3]):[0-5][0-9]'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
? | Wiederholen Sie 0 oder 1 des vorherigen Zeichens |
Beispiel | Passende Zeichenfolge |
---|---|
0?[0-9] | 0~9 oder 00~09 |
Dies kann auch etwas kürzer geschrieben werden:
pattern = r'((0?|1)[0-9]|2[0-3]):[0-5][0-9]'
Damit ist es möglich, die ohne 0-Polsterung (0-Polsterung) zu handhaben.
Ändern wir es außerdem so, dass es nicht nur mit ": (Doppelpunkt)", sondern auch mit "- (Bindestrich)" und "Stunde (Minute)" übereinstimmt.
pattern = r'((0?|1)[0-9]|2[0-3])[:Zeit][0-5][0-9]Protokoll?'
Dieses Mal habe ich versucht, mit Python einen regulären Ausdruck für "Zeit" zu erstellen.
Zeichenketten mit einem bestimmten Muster wie Datum, Uhrzeit und Anzahl sind mit regulären Ausdrücken kompatibel. Versuchen Sie, verschiedene Zeichenfolgen mit regulären Ausdrücken zu extrahieren.