Rubyでhタグをpタグに置換する必要があり、調べてもあまり参考になるサイト等がなかったので共有します。
ニッチすぎて誰が読むんだって感じですが、こういう事も出来るよって参考程度に、、、
まずしたい事は
hogehoge<h2>fugafuga</h2>oraora を hogehoge<p>fugafuga</p>oraora にしたい!!
まず素のh1タグをpタグにしたいだけなら
Hoge = "hogehoge<h1>fugafuga</h1>oraora"
Hoge.gsub(/<h1>(.*?)<\/h1>/, '<p>\1</p>')
# => "hogehoge<p>fugafuga</p>oraora"
で置換できますが、要素に属性を付けたい場合や、h2からh4タグだけを置換したい場合は少し応用が必要です。
h2からh4をpタグに置換したい場合は
Hoge2 = "hogehoge<h1>fugafuga</h1>oraora<h2>uraura</h2>warawara"
Hoge2.gsub(/<h[2-4]>(.*?)<\/h[2-4]>/, '<p>\1</p>')
# => "hogehoge<h1>fugafuga</h1>oraora<p>uraura</p>warawara"
としたり、要素に属性が付いている場合は
Hoge3 = "hogehoge<h3 class='foobar'>fugafuga</h3>oraora"
Hoge3.gsub(/<h[2-4](.*)?>(.*?)<\/h[2-4]>/, '<p\1>\2</p>')
# => "hogehoge<p class='foobar'>fugafuga</p>oraora"
また、属性を取らなくて良いなら最初から
Hoge3.gsub(/<h[2-4] .*?>(.*?)<\/h[2-4]>/, '<p>\1</p>')
# => "hogehoge<p>fugafuga</p>oraora"
とすれば属性が入っていてもいなくても置換できます!
もっといい方法や、間違っている箇所がありましたら指摘をお願い致します!!!