aaaaaaaaa
<h2>h2です。</h2>
aaaaaaaaa
<h3>h3です。</h3>
aaaaaaaaa
<h2>h2です。</h2>
aaaaaaaaa
<h2>h2です。</h2>
aaaaaaaaa
上記のような文字列があります。
この中から、タグと中身の文字を出現する順番通りに全て取得したいと考えています。
取得するタグはh2とh3しかありません。
【求める結果】
h2,h2です
h3,h3です
h2,h2です
h2,h2です
※カンマは区別のために記載。
正規表現で可能だと思うのですが、どのようにすればよいでしょうか?
こんな感じで。
s = <<__INPUT__ aaaaaaaaa <h2>h2です。</h2> aaaaaaaaa <h3>h3です。</h3> aaaaaaaaa <h2>h2です。</h2> aaaaaaaaa <h2>h2です。</h2> aaaaaaaaa __INPUT__ s.scan(/<(h[23])>(.*?)<\/\1>/) { |m| puts "#{m[0]},#{m[1]}" }
正規表現は
<(h[23])>(.*?)<\/\1>
で、String#scan を使って抽出するのが良いでしょう。
コメント(0件)