Если вы проанализируете строку с помощью Nokogiri, вы можете просмотреть ее и игнорировать все, кроме текстовых элементов:
require 'nokogiri'
doc = Nokogiri::HTML.parse('a<Br>b<BR>c<br/>d<BR/>e<br />f')
text = []
doc.search('p').first.children.each do |node|
text << node.content if node.text?
end
p text # => ["a", "b", "c", "d", "e", "f"]
Обратите внимание, что вы должны искать первый тег p, потому что Nokogiri обернет все это в <!DOCTYPE blah blah><html><body><p>YOUR TEXT</p></body></html>
.