输出值为 ruby 中的数组
Output value is array in ruby
这个程序输出应该是一个字符串,但它是数组
hi = "<ui><li>Welcome to select</li><li>hi</li><li>bye</li></ul>"
i = hi.scan(/<ui>(.*?)<\/ul/)
puts i
输出
[["<li>Welcome to select</li><li>hi</li><li>bye</li>"]]
但我想要这样的输出
<li>Welcome to select</li><li>hi</li><li>bye</li>
然后我希望所有 <\li>(.*?) 标签在单独的行中
像这样
Welcome to select
hi
bye
您应该使用 Nokogiri 来解析 HTML:
require 'nokogiri'
hi = '<ul><li>Welcome to select</li><li>hi</li><li>bye</li></ul>'
Nokogiri::HTML.fragment(hi).css('ul li').each do |li|
puts li.text
end
输出:
Welcome to select
hi
bye
如果你想在单独的行中输出,那么你可以使用ruby数组的flatten方法,然后遍历它以在单独的行中打印它们。
Flatten 将数组的数组转换为一维数组。
hi.scan(/<li>(.*?)<\/li>/).flatten.each {|x| puts x}
输出:
Welcome to select
hi
bye
这个程序输出应该是一个字符串,但它是数组
hi = "<ui><li>Welcome to select</li><li>hi</li><li>bye</li></ul>"
i = hi.scan(/<ui>(.*?)<\/ul/)
puts i
输出
[["<li>Welcome to select</li><li>hi</li><li>bye</li>"]]
但我想要这样的输出
<li>Welcome to select</li><li>hi</li><li>bye</li>
然后我希望所有 <\li>(.*?) 标签在单独的行中
像这样
Welcome to select
hi
bye
您应该使用 Nokogiri 来解析 HTML:
require 'nokogiri'
hi = '<ul><li>Welcome to select</li><li>hi</li><li>bye</li></ul>'
Nokogiri::HTML.fragment(hi).css('ul li').each do |li|
puts li.text
end
输出:
Welcome to select
hi
bye
如果你想在单独的行中输出,那么你可以使用ruby数组的flatten方法,然后遍历它以在单独的行中打印它们。 Flatten 将数组的数组转换为一维数组。
hi.scan(/<li>(.*?)<\/li>/).flatten.each {|x| puts x}
输出:
Welcome to select
hi
bye