Ben*_*Ben 1 ruby string text-parsing
我希望能够在两个标签之间匹配文本,从开始标签开始到结束标签。
假设我在名为“text”的变量中有这个文本块:
some text some text some text some text some text
<some_tag>
some text some text some text some text some text
</some_tag>
some text some text some text some text some text
Run Code Online (Sandbox Code Playgroud)
我想解析内容 'text' 什么都不做,直到它找到一个开始标签,在这种情况下是 'some_tag',一旦它找到一个开始标签,我希望它捕获所有内容,直到标签关闭。
我一直在玩块和正则表达式大约一个小时,似乎无法找到解决这个问题的好方法。
我很感激任何和所有的指针,谢谢!
您应该使用 HTML 解析器。正则表达式和 HTML 往往会产生不稳定的混合,这会导致大剂量的精神错乱。
使用Nokogiri:
require 'nokogiri'
html = <<EOT
some text some text some text some text some text
<p>
some text some text some text some text some text
</p>
some text some text some text some text some text
EOT
doc = Nokogiri::HTML::DocumentFragment.parse(html)
puts doc.search('p').map { |n| n.inner_text }
>> some text some text some text some text some text
Run Code Online (Sandbox Code Playgroud)
这是在 HTML 片段中搜索,寻找<p>标签。对于它发现的每一个,它都会提取内部文本。
我正在使用 Nokogiri 的 CSS 模式,通过使用"p". 我可以改用 XPath,但 CSS 被更多人理解。