【问题标题】:Find Value by position on plain HTML in ruby在 ruby​​ 的纯 HTML 上按位置查找值
【发布时间】:2015-07-19 07:59:39
【问题描述】:

我的 Html 文件没有任何类。我正试图拒绝。来自普通的 Html

<html>
 <head></head>
  <body>
     PO Number : [4587958]   
  </body>
</html>

我可以通过使用

找出采购订单号测试
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

我无法获得否。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 nokogiri


    【解决方案1】:

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

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

    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
    

    【讨论】:

    • 感谢 spickermann .. 它有效.. 只是想知道我是否想检索第二个值。像发票号码:[78945824] PO 号码:[4587958]
    猜你喜欢
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多