エビのメソッドを使用して、正規表現で HTML タグを取得してフォーマットしようとしています。私はこれまでのところこれを持っています:
def format(pdf, string)
regex_string = "\n|" +
"<b>(.*)<\/b>|" +
"<h3>(.*)<\/h3>|" +
"<strong>(.*)<\/strong>|" +
"[^<\n]+"
regex = Regexp.new(regex_string, Regexp::MULTILINE)
tokens = string.gsub("\n", " ").gsub(/<br\s*\/?>/, "\n").scan(regex)
tokens.each do |breaker|
case breaker
when "<b>(.*)<\/b>", "<strong>(.*)<\/strong>"
pdf.text breaker.to_s, :size => 10
when "<h3>(.*)<\/h3>"
pdf.text breaker.to_s, :size => 16
else
pdf.text breaker.to_s, :size => 10, :leading => 1
end
end
end
私の正規表現は間違っていると思いますが、それがどうあるべきかわかりません。その方法でかなり奇妙な配列の出力が得られます。どんな助けでもいいです!
アップデート
(.*)
Rubular で適切なタグを取得するように変更し(.*?)
ましたが、上記の HTML タグ以外のすべての出力が3 つになって[nil, nil, nil]
います。