在ruby中的普通HTML上按位置查找值

SWa*_*agh 4 ruby ruby-on-rails nokogiri ruby-on-rails-3 ruby-on-rails-3.1

我的Html文件没有任何类.我想要得到的不.来自简单的Html

<html>
 <head></head>
  <body>
     PO Number : [4587958]   
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我可以通过使用找出PO编号测试

require 'rubygems'

require 'nokogiri'   

PAGE_URL = "a.html"

page = Nokogiri::HTML(open(PAGE_URL))

data = page.css("body").text
puts data 
test = data
ponumber = test.scan('PO Number')
puts ponumber
Run Code Online (Sandbox Code Playgroud)

我无法得到否.

spi*_*ann 7

您可以通过使用匹配数字的正则表达式来获取数字:

page.css('body').text.scan(/\d+/)
# ["4587958"]

page.css('body').text.scan(/\d+/).first.to_i
# 4587958
Run Code Online (Sandbox Code Playgroud)

scan返回包含所有匹配项的数组.如果文档中有多个数字,只需选择要选择的元素:

# Example:
#   Invoice Number : [78945824] PO Number : [4587958]

page.css('body').text.scan(/\d+/)
# ["78945824", "4587958"]

page.css('body').text.scan(/\d+/)[1].to_i
# 4587958
Run Code Online (Sandbox Code Playgroud)