Hier ist der reguläre Ausdruck von "Betrag" durch Python.
Die Version am Ende des Kreises finden Sie weiter unten.
pattern = r'^(0|[1-9]\d*|[1-9]\d{0,2}(,\d{3})+)Kreis'
# OK
#0 Yen
# 1,000 Yen
#100 Yen
#12345 Yen
#2000 Yen
#1234 Yen
#1000 Yen
# NG
# 0,000 Yen
#000 Yen
# ,Kreis
# 10,00 Yen
Die Startversion von \ (Yen-Marke) lautet wie folgt.
pattern = r'^¥(0|[1-9]\d*|[1-9]\d{0,2}(,\d{3})+)$'
# OK
# ¥0
# ¥1,000
# ¥100
# ¥12345
# ¥2000
# ¥1234
# ¥1000
# NG
# ¥0,000
# ¥000
# ¥,
# ¥10,00
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 1000 Yen Erstellen wir einen regulären Ausdruck, der der Zeichenfolge entspricht.
pattern = r'1000 Yen'
Natürlich ist dies eine genaue Übereinstimmung, also stimmt es überein. Lassen Sie uns mit dem Code überprüfen.
pattern = r'1000 Yen'
string = r'1000 Yen'
prog = re.compile(pattern)
result = prog.match(string)
if result:
print(result.group())
#1000 Yen
Die übereinstimmende Zeichenfolge wird angezeigt. Der Einfachheit halber wird von nun an nur noch das Muster des regulären Ausdrucks beschrieben.
Neben "1000 Yen" gibt es "2000 Yen" und "1234 Yen". Die regulären Ausdrücke, die diesen entsprechen, lauten wie folgt.
pattern = r'\d\d\d\d Yen'
Die verwendeten regulären Ausdrücke sind:
Brief | Erläuterung |
---|---|
\d | Irgendeine Nummer |
Beispiel | Passende Zeichenfolge |
---|---|
\d\d\d\d | 1000, 2000, 1234 |
Der obige reguläre Ausdruck kann leichter ausgedrückt werden.
pattern = r'\d{4}Kreis'
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{4} | 1000, 2000, 1234 |
Hiermit können Sie jedoch keine anderen Beträge als vier Ziffern wie "100 Yen" und "12345 Yen" annehmen. Lassen Sie uns mit einer beliebigen Anzahl von Ziffern umgehen.
Der modifizierte reguläre Ausdruck lautet wie folgt.
pattern = r'\d+Kreis'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
+ | Eine oder mehrere Wiederholungen des vorherigen Zeichens |
Beispiel | Passende Zeichenfolge |
---|---|
\d+ | 1000, 100, 12345 |
Damit ist es jedoch nicht möglich, eine Zeichenfolge mit ", (Komma)" wie "1.000 Yen" zu verwenden. Erlaube sowohl Kommas als auch Zahlen.
Der modifizierte reguläre Ausdruck lautet wie folgt.
pattern = r'[\d,]+Kreis'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
[abc] | a,b,Jeder Brief von c |
Beispiel | Passende Zeichenfolge |
---|---|
[\d,] | Nummer oder,(Komma) |
Ich habe auch die folgenden regulären Ausdrücke verwendet:
Brief | Erläuterung |
---|---|
+ | Eine oder mehrere Wiederholungen des vorherigen Zeichens |
Beispiel | Passende Zeichenfolge |
---|---|
[\d,]+ | Nummer oder,(Kamma) eine oder mehrere Wiederholungen |
Jetzt können Sie mit Zahlen und (Komma) umgehen.
Dies führt jedoch zu Zeichenfolgen mit falschen Kommapositionen wie ", Kreis" und "10,00 Yen". Das Komma wird so korrigiert, dass es alle 3 Ziffern steht, z. B. "1.000 Yen" oder "1.000.000 Yen".
Der modifizierte reguläre Ausdruck lautet wie folgt.
pattern = r'\d{1,3}(,\d{3})+Kreis'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
{m,n} | Wiederholen Sie m oder mehr und n oder weniger des vorherigen Zeichens |
Beispiel | Passende Zeichenfolge |
---|---|
\d{1,3} | Zahlen 1 bis 3 Mal wiederholen |
Ich habe auch die folgenden regulären Ausdrücke verwendet:
Brief | Erläuterung |
---|---|
(abc) | Behandle den String abc als Block |
Beispiel | Passende Zeichenfolge |
---|---|
(,\d{3}) | 「,"000", wie z.,(Kamma) ”und 3 Zahlen werden als ein Block behandelt |
Wenn Sie dies tun, können Sie die Zeichenfolge nicht ohne Kommas verwenden. Ich werde es so ändern, dass ich nur Zahlen bekommen kann.
pattern = r'(\d+|\d{1,3}(,\d{3})+)Kreis'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
(abc|efg) | Entweder abc oder efg string |
Beispiel | Passende Zeichenfolge |
---|---|
(\d+|\d{1,3}(,\d{3})+) | 1000, 1,000 |
Dies führt jedoch auch zu 0-basierten Zeichenfolgen wie "0,000 Yen" und "000 Yen".
Der modifizierte reguläre Ausdruck lautet wie folgt.
pattern = r'([1-9]\d*|[1-9]\d{0,2}(,\d{3})+)Kreis'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
[a-c] | a,b,Jeder Brief von c |
Beispiel | Passende Zeichenfolge |
---|---|
[1-9] | 1~9 (Zahlen ohne 0) |
Ich habe auch die folgenden regulären Ausdrücke verwendet:
Brief | Erläuterung |
---|---|
* | Wiederholen Sie 0 oder mehr Mal des vorherigen Zeichens |
Beispiel | Passende Zeichenfolge |
---|---|
\d* | Wiederholen Sie die Zahl 0 oder mehrmals |
Sie haben jetzt 0-basierte Zeichenfolgen ausgeschlossen. Es müssen jedoch nur 0 Yen erlaubt sein, also fügen Sie dies hinzu.
pattern = r'^(0|[1-9]\d*|[1-9]\d{0,2}(,\d{3})+)Kreis'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
^ | Der Anfang der Zeichenfolge |
Wenn Sie nicht "^ (hat)" hinzufügen, wird "0 Yen" wie "0,000 Yen" als Teilübereinstimmung verwendet.
Einige Beträge beginnen sowohl mit ¥ (Yen-Marke) als auch mit Yen. Lassen Sie uns also auch hier einen regulären Ausdruck erstellen. Löschen Sie im vorherigen regulären Ausdruck den letzten "Kreis" und fügen Sie am Anfang "" hinzu.
pattern = r'^¥(0|[1-9]\d*|[1-9]\d{0,2}(,\d{3})+)'
In diesem Fall wird jedoch "¥ 1" von "¥ 1.000" als Teilübereinstimmung angesehen. Die modifizierte Version lautet wie folgt.
pattern = r'^¥(0|[1-9]\d*|[1-9]\d{0,2}(,\d{3})+)$'
Die neu verwendeten regulären Ausdrücke lauten wie folgt.
Brief | Erläuterung |
---|---|
$ | Ende der Zeichenfolge |
Durch Hinzufügen von $ am Ende wird verhindert, dass eine teilweise Übereinstimmung erzielt wird.
Dieses Mal habe ich versucht, mit Python einen regulären Ausdruck für "Betrag" 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