Beim Anwenden eines regulären Ausdrucks auf eine HTML-Datei in Python Ich habe es in der Codierung und an anderen Stellen verwendet, daher lasse ich es als Memo.
Verwenden Sie die Codecs-Bibliothek. Weil es eine Standard-Python-Bibliothek ist(Appx. 1)Es kann nur durch Import ohne Installation verwendet werden.
import codecs f = codecs.open("hoge.html","r", encoding="utf-8")
### Hinweis
- Stellen Sie sicher, dass Sie das Argument `` `encoding``` für die Funktion codecs.open angeben
- In der Windows-Umgebung können Sie anscheinend nur die als Shift-JIS angegebenen Dateien lesen. Als ich unterstützte, gab es einen Vorgänger (App x. 2).
## II. Wenden Sie reguläre Ausdrücke an
#### **`Verwenden wir die Bibliothek. Dies ist auch eine Standardbibliothek(Appx. 1)Es kann also nur durch Import verwendet werden.`**
``` 1)Es kann also nur durch Import verwendet werden.
import re str = f.read() regex = '[abc]' sample = re.findall(regex, str)
### Hinweis
- Verwenden Sie unbedingt die Funktion `` `codecs.read ()` ``, bevor Sie die im vorherigen Kapitel gelesene HTML-Datei an jede Funktion von `` re``` übergeben.
### Typischer regulärer Ausdruck
Das Folgende ist eine Liste von Funktionen, die als Funktionen von `` `re``` aus Appx.3 sehr vielseitig zu sein scheinen. Es wird angenommen, dass `` `Regex``` einen regulären Ausdruck enthält.
- Vorwärtssuche: `` `re.search (Regex, String)` ``
- Überprüft, ob sich das Regex-Muster in einer Zeichenfolge befindet, und gibt die Zeichenfolge (= Regex) zurück, falls vorhanden
--Wenn die Suche fehlschlägt, wird None zurückgegeben, sodass Sie es problemlos für die bedingte Verzweigung verwenden können, z. B. mit `` `, wenn nicht re.search (Regex, String):` ``.
--Such alle: `` `re.findall (Regex, String)` ``
- Überprüft, ob sich das Regex-Muster in der Zeichenfolge befindet, und gibt eine Liste mit allen Übereinstimmungen zurück
- Wenn Sie eine weitere Neuverarbeitung dieser Funktion durchführen möchten, verwenden Sie die Funktion str (um daraus eine Zeichenkette zu machen), um daraus eine Zeichenkette zu machen (App x. 4).
--Ersetzung: `` `re (subgex, replace, string, count = 0)` ``
--Überprüfen Sie, ob sich das Regex-Muster in der Zeichenfolge befindet, und ersetzen Sie es durch Ersetzen
- Wenn Sie eine natürliche Zahl von 1 oder mehr eingeben, können Sie angeben, wie oft der entsprechende Regex-Teil vom Anfang der Zeichenfolge ersetzt werden soll. Wenn der Standardwert 0 ist, ersetzen Sie alle Teile
――Ich habe mich gefragt: "Wie drücken Sie die globale Suche (` `/ g```) in Python aus, wenn Sie einen regulären Ausdruck in JavaScript usw. schreiben?", Aber anscheinend ist dieser Wert count = 0 Es scheint ausgedrückt zu werden durch (App x. 5)
Der reguläre Ausdruck selbst ist in Anhang 6 beschrieben.
(das ist alles)
## Referenz (Anhang / Anhang)
―― 1. [Python-Standardbibliothek](https://docs.python.org/ja/3/library/index.html)
―― 2. [Geschichte, dass ich Schwierigkeiten hatte, andere Dateien als CP932 (Shift-JIS) zu öffnen, die unter Windows codiert sind](https://qiita.com/Yuu94/items/9ffdfcb2c26d6b33792e)
--3 [re --- Operation für reguläre Ausdrücke](https://docs.python.org/ja/3/library/re.html)
- 4. [re.sub erroring with “Expected string or bytes-like object”](https://stackoverflow.com/questions/43727583/re-sub-erroring-with-expected-string-or-bytes-like-object)
- 5. [Python RegExp global flag
](https://stackoverflow.com/questions/11686516/python-regexp-global-flag)
--6 [Liste der regulären Grundausdrücke](https://murashun.jp/blog/20190215-01.html)
――Ich benutze es immer, um reguläre Ausdrücke nachzuschlagen.
Recommended Posts