乱雑な HTML ファイルから次の行を検索します。
<span id="fooPack1_xpl01_name11">150.00 FTL</span>
<span id="fooPack1_xpl02_name11">350.00 FTL</span>
<span id="fooPack1_xpl03_name11">250.00 FTL</span>
<span id="fooPack1_xpl04_name11">230.00 FTL</span>
BeautifulSoup と re を使用して、文字列を検索して見つけます。
tags = soup.find_all('span', id=re.compile(r'[fooPack1_xpl04_name11]\d+'))
しかし明らかに、その文字列の共通部分は最初と最後にあり、その部分は常に途中で変化します。「fooPack1_xpl」+(別の文字列)+「_name11」を検索するように再検索パターンを再構築するにはどうすればよいですか?
ありがとう。
// 編集 //
次のクエリを実行すると:
<span id="FullView1_spl02_Stack_4">03/04/12</span>
<span id="FullView1_spl03_Stack_4">01/03/11</span>
<span id="FullView1_spl04_Stack_4">02/25/02</span>
<span id="FullView1_spl05_Stack_4">07/16/04</span>
<span id="FullView1_spl01_Stack32">999.00 SPL</span>
<span id="FullView1_spl02_Stack82">150.00 XPP</span>
<span id="FullView1_spl03_Stack82">350.00 XPP</span>
<span id="FullView1_spl04_Stack82">450.00 XPP</span>
<span id="FullView1_spl05_Stack82">550.00 XPP</span>
<span id="FullView1_spl06_Stack82">650.00 XPP</span>
<span id="FullView1_spl07_Stack22">888.00 SPL</span>
<span id="FullView1_spl202_stckFriendName">Red Car</span>
<span id="FullView1_spl203_stckFriendName">Green Car</span>
<span id="FullView1_spl204_stckFriendName">Blue Car</span>
と:
foo=soup.findAll('span', id=re.compile(r'FullView1_spl\d+_stack82'))
次の結果が得られます。
<span id="FullView1_spl204_stckFriendName">Blue Car</span>
<span id="FullView1_spl02_Stack82">150.00 XPP</span>
<span id="FullView1_spl03_Stack82">350.00 XPP</span>
<span id="FullView1_spl04_Stack82">450.00 XPP</span>
<span id="FullView1_spl05_Stack82">550.00 XPP</span>
<span id="FullView1_spl06_Stack82">650.00 XPP</span>
明らかに、最上位の要素を検出する必要はありません。これが唯一の問題です。