Ruby-使用正则表达式从字符串中提取数据
在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
"\/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"