Ich versuche, alles zu erfassen, nachdem die '</html>'
Tag und lösche ihn, aber mein Code scheint nichts zu bewirken. Hat .replace()
keine Regex-Unterstützung?
z.write(article.replace('</html>.+', '</html>'))
Ich versuche, alles zu erfassen, nachdem die '</html>'
Tag und lösche ihn, aber mein Code scheint nichts zu bewirken. Hat .replace()
keine Regex-Unterstützung?
z.write(article.replace('</html>.+', '</html>'))
Nein. Reguläre Ausdrücke werden in Python von der re
Modul.
article = re.sub(r'(?is)</html>.+', '</html>', article)
Generell:
str_output = re.sub(regex_search_term, regex_replacement, str_input)
Um Text durch einen regulären Ausdruck zu ersetzen, verwenden Sie die re.sub Funktion:
sub(muster, repl, string[, count, flags])
Sie ersetzt nicht-überlappende Instanzen von pattern
durch den Text, der als string
. Wenn Sie die Übereinstimmung analysieren müssen, um beispielsweise Informationen über bestimmte Gruppenerfassungen zu extrahieren, können Sie eine Funktion an die string
Argument. mehr Infos hier .
Beispiele
>>> import re
>>> re.sub(r'a', 'b', 'banana')
'bbnbnb'
>>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435')
'/andre/{id}/abobora/{id}'
Für diesen speziellen Fall, wenn Sie re
Modul ist ein Overkill, wie wäre es mit der Verwendung von split
(oder rsplit
) Methode als
se='</html>'
z.write(article.split(se)[0]+se)
Zum Beispiel,
#!/usr/bin/python
article='''<html>Larala
Ponta Monta
</html>Kurimon
Waff Moff
'''
z=open('out.txt','w')
se='</html>'
z.write(article.split(se)[0]+se)
Ausgänge out.txt
como
<html>Larala
Ponta Monta
</html>
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
82 Stimmen
Warnung: Parsen von HTML mit regulären Ausdrücken führt zum Wahnsinn .
6 Stimmen
Ich habe einen Haufen Müll nach meinem abschließenden html-Tag und möchte ihn einfach entfernen.
1 Stimmen
Was aber, wenn Ihr HTML eine Zeichenkette in Anführungszeichen, einen Kommentar, ein JavaScript oder ein CDATA enthält?
</html>
? Oder was, wenn der Müll am Ende selbst eine</html>
? Wenn Sie nicht garantieren können, dass nichts davon passieren kann, müssen Sie entweder den HTML-Code vollständig parsen oder auf andere Weise feststellen, wie viele Daten Sie haben (z. B. eineContent-Length:
HTTP-Header).15 Stimmen
Nichts von alledem ist ein Faktor.