人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

正規表現でタグ内の文字列とタグを取得する方法(ruby)

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です
※カンマは区別のために記載。

正規表現で可能だと思うのですが、どのようにすればよいでしょうか?

●質問者: jamis
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●300ポイント ベストアンサー

こんな感じで。

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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ