我想从这个网址获得的“令牌”的值如何从URL中的特定值在Ruby on Rails的
令牌= EC-6HV41821M6960550G
url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-6HV41821M6960550G"
我知道它可以由正则表达式完成,但我认为它可以通过一些URI方法来完成。
我想从这个网址获得的“令牌”的值如何从URL中的特定值在Ruby on Rails的
令牌= EC-6HV41821M6960550G
url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-6HV41821M6960550G"
我知道它可以由正则表达式完成,但我认为它可以通过一些URI方法来完成。
待办事项可以得到这样的:
require 'uri'
url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxx"
uri = URI.parse(url)
params = CGI::parse(uri.query)
params['token'] # => 'EC-xxx'
Thanx它真的工作!你从很多正则表达式中拯救了我.. – Prem 2014-08-31 10:41:31
require 'cgi'
url = 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-6HV41821M6960550G'
CGI.parse(url)['token']
+1简短版本... – Prem 2014-08-31 10:46:03
-1只对'token'参数有效,但对'cmd'不起作用。 – spickermann 2014-08-31 10:51:12
是的,因为'CGI.parse'只对查询起作用,并且像'&'然后用'='解析它,所以不用'cmd'参数就可以有'https://www.sandbox.paypal .COM/cgi-bin目录/ webscr?cmd' – IS04 2014-08-31 10:54:07
为了表明,一些其他的方法也存在: -
#!/usr/bin/env ruby
require 'uri'
url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxx"
uri = URI(url)
URI.decode_www_form(uri.query).to_h['token']
# => "EC-xxx"
阅读方法::decode_www_form
docomentation。
我试图让它变粗体:-)删除它 – Prem 2014-08-31 10:11:03
看看'URI'类。你不能一步到位。你必须结合几个。 – sawa 2014-08-31 10:16:47