Heim > Fragen und Antworten > Hauptteil
Ich kämpfe schon seit einiger Zeit damit, den richtigen regulären Ausdruck für die folgende Aufgabe zu finden:
Ich möchte mit Python Daten aus Tabellen-Tags in einer HTML-Datei entfernen. Mein Ansatz hierfür besteht darin, Folgendes rekursiv auszuführen (die HTML-Zeilen zwischen Tags als Zeichenfolgen zu speichern):
s = "
s = re.sub('<{1}( ist nicht '<' 也不是 '>').*>{1}', '', s)
Meine Frage ist, wie man den fett gedruckten Teil in Klammern umsetzt. Danke. Dein Text
Ich habe es versucht
import re test_str = '<td style="color:blue">Hello</td>' test_str = re.sub('<{1}^[<>].*>{1}','',test_str) print(test_str)
Sie können sehen, dass meine Testsaite gleich bleibt. Was habe ich falsch gemacht?
Der obige Code, den ich erwarte, gibt mir test_str = „Hallo“, ich füge das wieder in diese Methode ein, die dann das „“ extrahiert und mir „Hallo“ gibt.
P粉3480889952023-09-15 09:00:18
要否定字符类,应将 ^
放在 [
之后。此外,您不需要为出现一次的字符指定 {1}
。
test_str = re.sub('<[^<>]*>', '', test_str)
但是,请注意,使用像 BeautifulSoup 这样的专用 HTML 解析器而不是正则表达式来从 HTML 获取数据更为合适。