Ruby 将html字符串切碎并将每个片段放入数组的最佳方法是什么?

Ruby 将html字符串切碎并将每个片段放入数组的最佳方法是什么?,ruby,regex,arrays,text-processing,Ruby,Regex,Arrays,Text Processing,我对如何做到这一点有一个大致的想法,但无法准确指出如何做到这一点。我相信这可以用某种正则表达式来完成。不知道这里是否有人能给我指出正确的方向 如果我有一个像这样的html字符串 some_html = '<div><b>This is some BOLD text</b></div>' some_html='这是一些粗体文本' 我想把它分成逻辑部分,然后把这些部分放到一个数组中,最后得到这样的结果 html_array = ["<div&

我对如何做到这一点有一个大致的想法,但无法准确指出如何做到这一点。我相信这可以用某种正则表达式来完成。不知道这里是否有人能给我指出正确的方向

如果我有一个像这样的html字符串

some_html = '<div><b>This is some BOLD text</b></div>'
some_html='这是一些粗体文本'
我想把它分成逻辑部分,然后把这些部分放到一个数组中,最后得到这样的结果

html_array = ["<div>", "<b>", "This is some BOLD text", "</b>","</div>" ]
html\u数组=[“”,“”,,“这是一些粗体文本”,“”,“”]

例如,使用HTML解析器。使用SAX,您可以在触发事件时向数组添加标记/元素


这是为了尝试对HTML进行正则化,除非您计划只处理它的一小部分。使用SAX,您可以在触发事件时向数组添加标记/元素


除非您打算只处理一小部分确定的HTML,否则最好尝试使用regex HTML。

我不会使用regex,而是使用gem(一种解析HTML的gem,由Rails和Ruby的-contributor编写)。下面是如何使用它的示例:

html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>")

我不使用regex,而是使用gem(一个解析html的gem,由-contributor编写到Rails和Ruby)。下面是如何使用它的示例:

html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>")
some_html.split(/(]*>)/)。拒绝{x |''==x}
一些html.split(/(]*>)/)。拒绝{x |''==x}

它总是标记文本标记标记吗?不是。我只是用了一个简单的例子。html存储在数据库中,用于博客文章。博客文章是用富文本编辑器制作的,因此html只是根据用户输入的内容生成的。我需要处理存储的html,这样当用户想要编辑文章时,我可以将其追加回我的富文本编辑器(contentEditable div)。它总是标记文本标记吗?不。我只是使用了一个简单的示例。html存储在数据库中,用于博客文章。博客文章是用富文本编辑器制作的,因此html只是根据用户输入的内容生成的。我需要处理存储的html,这样当用户想要编辑post.Cool时,我可以将其追加回我的富文本编辑器(contentEditable div)。我要试一试。你能在Nokogiri::html方法中输入任何html字符串吗?或者它必须是一个完整的html文档?好的,非常感谢。我将在文档中翻一翻,并尝试一下。这实际上并没有回答这个问题。@pguardiario你说得对,我没有回答标题中的问题。但作者的问题表明,他不确定如何解决这个问题,他正在寻求帮助,为他指明正确的方向。这就是我试图回答的。嗯,nokogiri是解析html的正确工具,但它不能帮助他拆分html。酷。我要试一试。你能在Nokogiri::html方法中输入任何html字符串吗?或者它必须是一个完整的html文档?好的,非常感谢。我将在文档中翻一翻,并尝试一下。这实际上并没有回答这个问题。@pguardiario你说得对,我没有回答标题中的问题。但作者的问题表明,他不确定如何解决这个问题,他正在寻求帮助,为他指明正确的方向。这就是我试图回答的。嗯,nokogiri是解析html的正确工具,但它不会帮助他拆分它。我大体上同意。但使用正则表达式似乎很简单,我大体上同意。但这似乎足够简单,可以使用正则表达式。
some_html.split(/(<[^>]*>)/).reject{|x| '' == x}