我有一个URL,如下所示。
/shows/the-ruby-book/meta-programming/?play=5b35a825-d372-4375-b2f0-f641a38067db"我只需要使用正则表达式提取剧本的id (即5b35a825-d372-4375-b2f0-f641a38067db)。我该怎么做呢?
发布于 2014-10-20 12:33:14
我不会使用regexp来解析url。我会使用Ruby的库来处理URL:
require 'uri'
url = '/shows/the-ruby-book/meta-programming/?play=5b35a825-d372-4375-b2f0-f641a38067db'
uri = URI.parse(url)
params = URI::decode_www_form(uri.query).to_h
params['play']
# => 5b35a825-d372-4375-b2f0-f641a38067db发布于 2014-10-20 12:27:31
你可以:
str = '/shows/the-ruby-book/meta-programming/?play=5b35a825-d372-4375-b2f0-f641a38067db'
match = str.match(/.*\?play=([^&]+)/)
puts match[1]
=> "5b35a825-d372-4375-b2f0-f641a38067db"regex /.*\?play=([^&]+)/将匹配所有内容直到?play=,然后捕获任何不是& (查询字符串参数分隔符)的内容。
匹配将创建一个MatchData对象,在这里由match变量表示,捕获将是对象的索引,因此匹配的数据在match[1]中可用。
发布于 2014-10-20 14:27:09
url = '/shows/the-ruby-book/meta-programming/?play=5b35a825-d372-4375-b2f0-f641a38067db'
url.split("play=")[1] #=> "5b35a825-d372-4375-b2f0-f641a38067db"https://stackoverflow.com/questions/26465543
复制相似问题