【问题标题】:Ruby - Extract data from string with regex [duplicate]Ruby - 使用正则表达式从字符串中提取数据[重复]
【发布时间】:2016-05-29 06:43:47
【问题描述】:

在 ruby​​ 中,我的字符串如下所示:

"\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20"

如何使用正则表达式从该字符串中提取偏移值?

【问题讨论】:

    标签: ruby regex


    【解决方案1】:

    假设偏移量总是以offset= 的形式出现并且它总是一个数值

    str = "\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20"
    str.scan(/offset=(\d+)/)
    #=> [["20"]]
    

    【讨论】:

    • 您可以使用 positive lookbehind 来避免嵌套数组:str.scan(/(?<=offset=)\d+/),或者 - 因为可能只有一个“偏移量” - 只是 str[/(?<=offset=)\d+/]
    【解决方案2】:

    使用正则表达式不满足您的要求,但这里有一种方法:

    uri = "\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20"
    
    require "uri"
    URI.decode_www_form(URI(uri).query).assoc("offset").last
    # => "20"
    

    URI.decode_www_form(URI(uri).query).to_h["offset"]
    # => "20"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多