我想從這個網址獲得的「令牌」的值如何從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