Python: 正規表現で置換する 質問する

Python: 正規表現で置換する 質問する

文字列の一部を置換する必要があります。Python のドキュメントを調べていたところ、re.sub を見つけました。

import re
s = '<textarea id="Foo"></textarea>'
output = re.sub(r'<textarea.*>(.*)</textarea>', 'Bar', s)
print output

>>>'Bar'

私はこれが'<textarea id="Foo">Bar</textarea>'「バー」ではなく印刷されることを期待していました。

何が間違っていたのか誰か教えてもらえますか?

ベストアンサー1

撮りたい部分を撮影する代わりに交換する必要な部分をキャプチャできます保つ次に、参照を使用してそれらを参照し、\1置換された文字列に含めます。

代わりにこれを試してください:

output = re.sub(r'(<textarea.*>).*(</textarea>)', r'\1Bar\2', s)

また、これがHTMLであると仮定すると、このタスクにはHTMLパーサーの使用を検討する必要があります。たとえば、美しいスープ

おすすめ記事