在两行括号之间获取内容

时间:2014-07-09 19:01:54

标签: ruby regex

当括号位于两行时,是否可以在括号之间获取内容? 类似的东西:

aaaa = ("bbb",

   "ccc")

并输出:

"bbb","ccc"

这可能吗?

2 个答案:

答案 0 :(得分:2)

你想要的是一个多线正则表达式。它的工作方式与正常的正则表达式类似,但/m标记新行将与.匹配。

string = %Q'aaaa = ("bbb",\n\n"ccc")'

string =~ /\((.*)\)/m

puts $1.gsub(/\s/,'') # prints "bbb","ccc"

我在这里使用gsub删除空格,但这是可选的。

答案 1 :(得分:0)

str = 'aaaa = ("bbb",

   "ccc")'

results = []

str.scan(/" .* "/x) do |quoted_str|
  results << quoted_str
end


puts results.join(',')

--output:--
"bbb","ccc"