0
我試圖用正則表達式來抓取HTML標籤來使用蝦的方法來格式化。我有這個到目前爲止:Rails和蝦:使用正則表達式來格式化
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
我認爲我的正則表達式是錯誤的,但我無法弄清楚它應該是什麼。用這種方法我得到了一個很奇怪的數組打印輸出。任何幫助都很棒!
UPDATE
更改(.*)
到(.*?)
得到了正確的標籤Rubular,但上面除了那些在HTML標籤的所有輸出都三五成羣[nil, nil, nil]
。
感謝您的建議。原來Nokogiri在我想要的方面更好。 –
拍攝,如果我知道你對此開放,我會建議!在rails中解析HTML並不會好得多。我會更新我的答案以反映這一點。 – tyler