我对如何做到这一点有一个大概的想法,但无法确定如何完成它。我相信它可以用某种正则表达式来完成。想知道这里是否有人可以指出我正确的方向。
如果我有一串html,比如这个
some_html = '<div><b>This is some BOLD text</b></div>'
我想将它划分为逻辑片段,然后将这些片段放入一个数组中,这样我就会得到这样的结果
html_array = ["<div>", "<b>", "This is some BOLD text", "</b>","</div>" ]
答案 0 :(得分:5)
我没有使用正则表达式,而是使用nokogiri gem(用于解析由Aaron Patterson编写的html的gem - Rails和Ruby的贡献者)。以下是如何使用它的示例:
html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>")
然后,您可以致电html_doc.children
获取nodeset并从那里开始工作
html_doc.children # returns a nodeset
答案 1 :(得分:4)
使用HTML解析器,例如Nokogiri。使用SAX,您可以在触发事件时向数组添加标记/元素。
尝试使用正则表达式HTML是not a good idea,除非您计划仅处理其中一小部分HTML。
答案 2 :(得分:0)
some_html.split(/(<[^>]*>)/).reject{|x| '' == x}