Reguläre Ausdrücke mit AND in Python
P粉988025835
P粉988025835 2023-09-14 16:30:41
0
1
632

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 = "Erforderlicher Inhalt"

  1. Weisen Sie die Zeichenfolge s der Zeichenfolge neu zu und entfernen Sie alles zwischen den „<...>“.

s = re.sub('<{1}( ist nicht '<' 也不是 '>').*>{1}', '', s)

  1. Wiederholen Sie dies, bis Sie s="gewünschten Inhalt" übrig haben.

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粉988025835
P粉988025835

Antworte allen(1)
P粉348088995

要否定字符类,应将 ^ 放在 [ 之后。此外,您不需要为出现一次的字符指定 {1}

test_str = re.sub('<[^<>]*>', '', test_str)

但是,请注意,使用像 BeautifulSoup 这样的专用 HTML 解析器而不是正则表达式来从 HTML 获取数据更为合适。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage