タグの後のすべてを取得して削除しようとしています'</html>'
が、私のコードは何もしていないようです。.replace()
正規表現をサポートしていませんか?
z.write(article.replace('</html>.+', '</html>'))
いいえ。Python の正規表現は、re
モジュールによって処理されます。
article = re.sub(r'(?is)</html>.+', '</html>', article)
一般に:
text_after = re.sub(regex_search_term, regex_replacement, text_before)
正規表現を使用してテキストを置き換えるには、re.sub関数を使用します。
sub(パターン、repl、文字列[、カウント、フラグ])
pattern
として渡されたテキストによって、の永続しないインスタンスを置き換えますstring
。たとえば、一致を分析して特定のグループ キャプチャに関する情報を抽出する必要がある場合は、string
引数に関数を渡すことができます。詳細はこちら。
例
>>> import re
>>> re.sub(r'a', 'b', 'banana')
'bbnbnb'
>>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435')
'/andre/{id}/abobora/{id}'
モジュールを正規表現に使用できますがre
、正規表現はおそらくやり過ぎです。私は何かを試すかもしれません
z.write(article[:article.index("</html>") + 7]
これははるかにクリーンで、正規表現ベースのソリューションよりもはるかに高速です。