我的数据库中有这个字符串......
"[{:@error=>"Invalid information was sent: ''. Check the attribute for correct input value."}, {:@error=>"Invalid phone number: "}, {:@error=>"Invalid address: "}]"
我想解析它,只显示@error=>
内的字符串。
与此类似的东西
从前面的例子中我尝试使用这样的东西......
string.scan(/'([^']+)'/).flatten.map{ |msg| msg.gsub(/(\.|\s+)/, ' ').strip }
但是这返回了一个空数组。
答案 0 :(得分:1)
您可以使用这样的简单正则表达式:
@error=>"(.*?)"
<强> Working demo 强>
匹配信息
MATCH 1
1. [12-91] `Invalid information was sent: ''. Check the attribute for correct input value.`
MATCH 2
1. [106-128] `Invalid phone number: `
MATCH 3
1. [143-160] `Invalid address: `