正则表达式提取子串红宝石

时间:2013-03-12 14:10:27

标签: ruby-on-rails regex

"{\"status\":1,\"redirect\":\"/some/uri/uri2/index.html?post_login=80607979823520\",\"security_token\":\"/cpsess8233434446\"}"

我将此响应作为字符串获取,我需要提取security_token值。 我尝试通过eval方法将字符串转换为Hash。似乎没有工作,我需要进行正则表达式匹配。

3 个答案:

答案 0 :(得分:2)

你可以这样做:

require 'json'
a =  JSON.load "{\"status\":1,\"redirect\":\"/some/uri/uri2/index.html?post_login=80607979823520\",\"security_token\":\"/cpsess8233434446\"}"
p a["security_token"]  #=> "/cpsess8233434446"

答案 1 :(得分:2)

您需要解析JSON数据..

result = "{\"status\":1,\"redirect\":\"/some/uri/uri2/index.html?post_login=80607979823520\",\"security_token\":\"/cpsess8233434446\"}" 
h = JSON.parse(result)
h['security_token']      # => "/cpsess8233434446"

答案 2 :(得分:1)

您可以JSON。加载数据并过滤['security_token']或使用.match(/ security_token /)样式的正则表达式。

我建议使用先前的可读性和代码维护。