Ruby-使用正则表达式从字符串中提取数据

Ruby-使用正则表达式从字符串中提取数据,ruby,regex,Ruby,Regex,在ruby中,我有如下字符串: "\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20" 如何使用正则表达式从该字符串中提取偏移量值?假设偏移量始终显示为offset=,并且它始终是一个数值 str = "\/v1\/195900\/patients?DEPARTMENTID=162&GUARANTORCOUNTRYCODE3166=1&offset=20" st

在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"]]

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

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

require "uri"
URI.decode_www_form(URI(uri).query).assoc("offset").last
# => "20"

您可以使用正向查找来避免嵌套数组:
str.scan(/(?)?
URI.decode_www_form(URI(uri).query).to_h["offset"]
# => "20"