Holen Sie sich die passende Zeichenfolge in den regulären Ausdruck und verwenden Sie sie beim Ersetzen unter Python3 erneut

1. Was Sie tun möchten

Ich möchte die Zeichenfolge, die mit Pythons Ersatz für reguläre Ausdrücke übereinstimmt, als Ersatz verwenden. Ich vergesse es jedes Mal, also mach dir eine Notiz

2. Zum Beispiel?

Angenommen, Sie haben eine solche Liste in englischer Analyse.

Liste mit englischen Wörtern


sentence = ['During', 'this', 'time', ',', 'many', 'chatterbots', 'were', 'written', 'including',
            'PARRY', ',', 'Racter', ',', 'and', 'Jabberwacky', '.']

Wenn Sie dies zu einer Zeichenkette (des gesamten Satzes) machen möchten, können Sie zuerst an Join denken.

Versuchen Sie, mit einem Leerzeichen mit halber Breite zu verbinden


' '.join(sentence)
#During this time , many chatterbots were written including PARRY , Racter , and Jabberwacky .

Ja ... Wie Sie vielleicht vermutet haben, befindet sich vor dem . oder, ein halbbreites Leerzeichen **. ich war in Schwierigkeiten Was dann tun? Das stimmt. Durch einen regulären Ausdruck ersetzen! Aber wie ersetzt man es durch "," oder "."?

3. Verwenden Sie die übereinstimmende Zeichenfolge am Ersatzziel erneut

Lass es uns vorerst tun.

Korrigieren Sie es wie englischen Text


import re

bad = ' '.join(sentence)
fixed = re.sub(r' ([,.])', r'\1', bad)
# r' [,.]' :Raum halber Breite+「,」「.Irgendein von

print(fixed) 

Ausgabe


During this time, many chatterbots were written including PARRY, Racter, and Jabberwacky.

Komplett!

4. Ein kleiner Kommentar

Bei Verwendung von re sub Fügen Sie in die Musterzeichenfolge des ersten Arguments den Teil ein, den Sie in () wiederverwenden möchten. Geben Sie die Anzahl von () an, die Sie für den Teil verwenden möchten, für den Sie die Zeichenfolge des zweiten Arguments ersetzen möchten: ": \ 1, wenn es das erste ist". Auf dieser Grundlage werde ich einige Beispiele schreiben.

check.py


bad = 'including PARRY , Racter , and Jabberwacky .'

#Der von früher
re.sub(r' ([,.])', r'\1', bad)
Out[4]: 'including PARRY, Racter, and Jabberwacky.'

# 「(Die Lage ist anders
re.sub(r'( [,.])', r'\1', bad)
Out[5]: 'including PARRY , Racter , and Jabberwacky .' # == bad

# 「()Versuchen Sie, den Raum mit einzuschließen
re.sub(r'( )([,.])', r'\1', bad)
Out[6]: 'including PARRY  Racter  and Jabberwacky '

#Ändern Sie die zu verwendende Nummer
re.sub(r'( )([,.])', r'\2', bad)
Out[7]: 'including PARRY, Racter, and Jabberwacky.'

#Versuchen Sie, eine Verbindung herzustellen und zu verwenden
re.sub(r'( )([,.])', r'\1\2', bad)
Out[8]: 'including PARRY , Racter , and Jabberwacky .' # == bad

#Wie wäre es mit dem Gegenteil
re.sub(r'( )([,.])', r'\2\1', bad)
Out[9]: 'including PARRY,  Racter,  and Jabberwacky. ' # != bad

#Versuche zu spielen
re.sub(r'( )([,.])', r'\1 Hoge\2', bad)
Out[12]: 'einschließlich PARRY Hoge,Racter Hoge,und Jabberwacky Hoge.'

Ergänzung

Stellen Sie sicher, dass `` \ num' mit rvorangestellt wird. <sup> <a href="#%E8%BF%BD%E8%A8%9820170119"> Zusätzliche Hinweise </a> <sup /> Gutes Beispielr '\ 1'` Schlechtes Beispiel "\ 1"

Nachtrag (19.01.2017)

Wenn Sie einen Schrägstrich "" hinzufügen, funktioniert dies ohne das "r".

*** Vielen Dank an Shiracamus, dass Sie uns in den Kommentaren informiert haben. *** ***

Im Fall von "\ num" ist es notwendig, "r" hinzuzufügen, aber wenn es "\ num" ist, ist es nicht notwendig, "r" hinzuzufügen. r bedeutet raw (raw = raw, raw) und ist eine raw (raw) Zeichenfolge, die Backslashes nicht als Escapezeichen behandelt.

>>> import re
>>> bad = 'including PARRY , Racter , and Jabberwacky .'
>>> re.sub(' ([,.])', '\\1', bad)
'including PARRY, Racter, and Jabberwacky.'

Wenn Sie weitere Fragen haben, teilen Sie uns dies bitte in den Kommentaren mit.

Recommended Posts

Holen Sie sich die passende Zeichenfolge in den regulären Ausdruck und verwenden Sie sie beim Ersetzen unter Python3 erneut
Ändern Sie die zu ersetzende Zeichenfolge entsprechend der übereinstimmenden Zeichenfolge, indem Sie sie durch den regulären Python-Ausdruck ersetzen
[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Bestimmen Sie, ob die Zeichenfolge Zeit mit einem regulären Python-Ausdruck ist
String-Ersetzung durch regulären Python-Ausdruck
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Ein Memo mit Python2.7 und Python3 in CentOS
[Persönliches Memo] Holen Sie sich Daten im Web und machen Sie daraus einen DataFrame
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Entschlüsseln Sie eine unter iOS mit Python verschlüsselte Zeichenfolge
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 3 sichtbar
Machen Sie aus einem Python-Programm einen Daemon und führen Sie es automatisch aus, wenn das Betriebssystem gestartet wird
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten, wenn es dunkel wird!
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Machen Sie mit Python einen Haltepunkt auf der c-Ebene
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Beim Schreiben einer if-Anweisung mit einem regulären Ausdruck
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
[CGI] Führen Sie das Server-Python-Programm mit Vue.js + axios aus und rufen Sie die Ausgabedaten ab
[Ruby] Wie ersetze ich nur einen Teil der Zeichenkette, der mit dem regulären Ausdruck übereinstimmt?
Bis Sie mit Python unter Windows 7 eine maschinelle Lernumgebung erstellen und ausführen
Verknüpfen Sie Python Enum mit einer Funktion, um es aufrufbar zu machen
Holen Sie sich Python-Webseite, Zeichenkodierung und Anzeige
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Erstellen Sie ein Bereitstellungsskript mit Stoff und Küche und verwenden Sie es erneut
Manipulation regulärer Ausdrücke durch Python
Machen Sie ein BLE-Thermometer und ermitteln Sie die Temperatur mit Pythonista3
Setzen Sie Ubuntu in Raspi ein, setzen Sie Docker darauf und steuern Sie GPIO mit Python aus dem Container
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
Lebensspiel mit Python [ich habe es geschafft] (auf Terminal & Tkinter)
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Erste Schritte mit dem Python-Framework Django unter Mac OS X.
So erhalten Sie alle möglichen Werte in einem regulären Ausdruck
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
Ein Memorandum beim automatischen Erwerb mit Selen
Erstellen Sie mit Anaconda und PyCharm eine Python-Umgebung auf Ihrem Mac
Pythons regulärer Ausdruck, str und unicode sind nüchtern
Fehler und Lösung bei der Installation von Python3 mit Homebrew auf einem Mac (Catalina 10.15)
Lösen Sie das Python-Rucksackproblem mit der Branch-and-Bound-Methode
Installieren Sie lp_solve unter Mac OSX und rufen Sie es mit Python auf.
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Python - Holen Sie sich in regelmäßigen Abständen die Bitcoin-Rate BTC / JPY von Bitflyer und speichern Sie sie in einer Datei
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Ich habe GhostScript mit Python ausgeführt, das PDF in Seiten aufgeteilt und es in ein JPEG-Bild konvertiert.
Verwenden Sie AWS Lambda, um Nachrichten zu kratzen und LINE regelmäßig über Updates zu informieren [Python]
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
Ermitteln Sie mit Selenium + PhantomJS + Python die Breite des Div auf der Serverseite