378

タグの後のすべてを取得して削除しようとしています'</html>'が、私のコードは何もしていないようです。.replace()正規表現をサポートしていませんか?

z.write(article.replace('</html>.+', '</html>'))
4

4 に答える 4

623

いいえ。Python の正規表現は、reモジュールによって処理されます。

article = re.sub(r'(?is)</html>.+', '</html>', article)

一般に:

text_after = re.sub(regex_search_term, regex_replacement, text_before)
于 2012-07-13T18:05:04.640 に答える
83

正規表現を使用してテキストを置き換えるには、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}'
于 2017-01-03T16:02:54.007 に答える
7

モジュールを正規表現に使用できますがre、正規表現はおそらくやり過ぎです。私は何かを試すかもしれません

z.write(article[:article.index("</html>") + 7]

これははるかにクリーンで、正規表現ベースのソリューションよりもはるかに高速です。

于 2012-07-13T19:01:50.527 に答える