Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen

Fazit

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

Vorbereitung

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.

スクリーンショット 2020-04-20 9.20.18.png

Dies ist auch über Python-reguläre Ausdrücke im Allgemeinen leicht zu verstehen. https://qiita.com/luohao0404/items/7135b2b96f9b0b196bf3

Lassen Sie uns einen regulären Ausdruck für die Zeit erstellen

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?'

Zusammenfassung

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.

Recommended Posts

Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe versucht, Python (3) anstelle eines Funktionsrechners zu verwenden
Ich habe mit PyQt einen einfachen Texteditor erstellt
Ich habe eine Web-API erstellt
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Ich habe versucht, eine stabile Sortierung zu implementieren
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
Ich habe eine Funktion zum Abrufen von Daten aus der Datenbank spaltenweise mithilfe von SQL mit SQLite3 von Python [SQLite3, SQL, Pandas] erstellt.
Ich möchte ein Spiel mit Python machen
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Ich habe versucht, eine Clusteranalyse von Kunden anhand von Kaufdaten durchzuführen
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich habe versucht, Trumps Kartenspiel in Python zu implementieren
Ich möchte eine Webanwendung mit React und Python Flask erstellen
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
[Python] Ich habe versucht, das Mitgliederbild der Idolgruppe mithilfe von Keras zu beurteilen
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
[Python] Deep Learning: Ich habe versucht, Deep Learning (DBN, SDA) ohne Verwendung einer Bibliothek zu implementieren.
[Patentanalyse] Ich habe versucht, mit Python eine Patentkarte zu erstellen, ohne Geld auszugeben
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Fortsetzung ・ Ich habe versucht, Slackbot zu erstellen, nachdem ich Python3 studiert habe
[Python] Smasher hat versucht, den Video-Ladevorgang mithilfe eines Generators zu einer Funktion zu machen
Django super Einführung von Python-Anfängern! Teil 2 Ich habe versucht, die praktischen Funktionen der Vorlage zu nutzen
So erstellen Sie ein Python-Paket mit VS Code
[Python] Ich habe versucht, eine Shiritori-KI zu erstellen, die den Wortschatz durch Schlachten verbessert
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
Ich habe versucht, mit Python eine Pseudofraktalfigur zu zeichnen
kanonischer Python-Ausdruck oder Match-Objekt-Memo
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
[Python] Ich habe versucht, Json von Tintenfischring 2 zu bekommen
Ich habe versucht, mit Python auf Google Spread Sheets zuzugreifen
Ich habe versucht, eine verdächtige Person mithilfe von Geolonia-Adressdaten schnell zu einem MAP zu machen
Ich habe versucht, ein Konfigurationsdiagramm mit Diagrammen zu zeichnen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Ich habe versucht, mit Python Machine Learning ein Echtzeit-Modell zur Trennung von Tonquellen zu erstellen
Python-Übung 100 Schläge Ich habe versucht, den Entscheidungsbaum von Kapitel 5 mit graphviz zu visualisieren
Ich wollte viele Bilder sammeln, also habe ich versucht, "Google Image Download" zu verwenden.