正则表达式获取所有“”内的值

时间:2015-07-14 10:47:53

标签: ruby regex

a='fdkfjsdflksdj lfkjdflksdjf["fdkljfdfl"]fkjdfldjkf["fdfdf"]dfdfsdfsdfsdfddfdfkdfj["fdfds"]fdfasdfds'

我需要获取""内的值,这意味着输出应该是

fdkljfdfl
fdfdf
fdfds

我写了以下编码

puts a[/\["(.*)"\]/m]

但它返回

["fdkljfdfl"]fkjdfldjkf["fdfdf"]dfdfsdfsdfsdfddfdfkdfj["fdfds"]

你能帮助我在""

中取出那个特定的字符串吗?

2 个答案:

答案 0 :(得分:2)

puts a.scan(/\["(.*?)"\]/m)

              ^^

让你的正则表达式不贪婪。或者使用基于否定的正则表达式。

puts a.scan(/\["([^"]*)"\]/m)

答案 1 :(得分:1)

尝试:

a.scan(/"([^"]*)"/).flatten
#=> ["fdkljfdfl", "fdfdf", "fdfds"]

它将返回字符串数组