【发布时间】:2016-05-29 06:43:47
【问题描述】:
在 ruby 中,我的字符串如下所示:
"\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20"
如何使用正则表达式从该字符串中提取偏移值?
【问题讨论】:
在 ruby 中,我的字符串如下所示:
"\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20"
如何使用正则表达式从该字符串中提取偏移值?
【问题讨论】:
假设偏移量总是以offset= 的形式出现并且它总是一个数值
str = "\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20"
str.scan(/offset=(\d+)/)
#=> [["20"]]
【讨论】:
str.scan(/(?<=offset=)\d+/),或者 - 因为可能只有一个“偏移量” - 只是 str[/(?<=offset=)\d+/]
使用正则表达式不满足您的要求,但这里有一种方法:
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"
【讨论】: