前提・実現したいこと
Python3.xにて、特定のHTMLタグの間の存在する不要なタグを正規表現で置換するプログラムを作成しています。
発生している問題・エラーメッセージ
下記のソースコードを基にすると、<div class="main"><h2 class="h2_main"> ~ </h2></div>間に存在する全てのHTMLタグを正規表現により置換し削除したいのですが、パターンにマッチさせることができず困っております。
該当のソースコード
Python
1text = '<p>文字列1</p><div class="main"><h2 class="h2_main"><p>文字列2</p>文字列3<em>文字列4</em></h2></div>' 2 3output = re.sub('(<div class="main"><h2 class="h2_main">)((?!<.*?>.*?))(</h2></div>)', '\1\2\3', text) 4print(output) 5 6# 現状(マッチせずそのまま出力される) 7<p>文字列1</p><div class="main"><h2 class="h2_main"><p>文字列2</p>文字列3<em>文字列4</em></h2></div> 8 9# 期待する出力 10<p>文字列1</p><div class="main"><h2 class="h2_main">文字列2文字列3文字列4</h2></div>
以上、よろしくお願いいたします。
ご回答を基にした最終的なコード
Pythpn
1from bs4 import BeautifulSoup 2 3text = '<p>文字列1</p><div class="main"><h2 class="h2_main"><p>文字列2</p>文字列3<em>文字列4</em></h2</div>' 4 5soup = BeautifulSoup(text, 'html.parser') 6 7for h2 in soup.find_all('h2'): 8 for e in h2.find_all(): 9 e.unwrap() 10 11print(soup)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/01 09:17