获取一串 html、将其切碎并将每个部分放入数组中的最佳方法是什么?

发布于 2024-12-11 21:37:16 字数 380 浏览 0 评论 0原文

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

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

some_html = '<div><b>This is some BOLD text</b></div>'

我想将它分成逻辑部分,然后将这些部分放入一个数组中,这样我就会得到这样的结果

html_array = ["<div>", "<b>", "This is some BOLD text", "</b>","</div>" ]

I have a general idea of how I can do this, but can't pinpoint how exactly to get it done. I am sure it can be done with a regex of some sort. Wondering if anyone here can point me in the right direction.

If I have a string of html such as this

some_html = '<div><b>This is some BOLD text</b></div>'

I want to to divide it into logical pieces, and then put those pieces into an array so I end with a result like this

html_array = ["<div>", "<b>", "This is some BOLD text", "</b>","</div>" ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

年华零落成诗 2024-12-18 21:37:16

我不使用正则表达式,而是使用 nokogiri gem (用于解析由 Aaron Patterson - 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

Rather than use regex I'd use the nokogiri gem (a gem for parsing html written by Aaron Patterson - contributor to Rails and Ruby). Here's a sample of how to use it:

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

You can then call html_doc.children to get a nodeset and work your way from there

html_doc.children  # returns a nodeset
水晶透心 2024-12-18 21:37:16

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

不是一个好主意尝试使用正则表达式 HTML,除非您打算只处理一小部分确定的子集。

Use an HTML parser, for instance, Nokogiri. Using SAX you can add tags/elements to the array as events are triggered.

It's not a good idea to try to regex HTML, unless you're planning to treat only a small determined subset of it.

故笙诉离歌 2024-12-18 21:37:16
some_html.split(/(<[^>]*>)/).reject{|x| '' == x}
some_html.split(/(<[^>]*>)/).reject{|x| '' == x}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文