正则表达式匹配双引号内的特殊字符

Regular expression to match special characters within double quotes

我的输入字符串是:

"& is here "& is here also, & has again occured""

在Ruby语言中使用gsub方法,有没有办法用字符'$'替换双引号中出现的字符'&',如果gsub方法不能解决这个问题,还有其他方法吗可用于解决此问题的方法。

由于 gsub 方法中的第一个参数可以是一个正则表达式,所以匹配的正则表达式将被第二个参数替换,获得一个正确的正则表达式来识别也可能解决这个问题,因为它可以在 gsub 方法中替换为替换 ' &' 和 '$'.

预期输出如图所示:

& is here "$ is here also , $ has again occured"
str = %q{& is here "& is here also , & has again occured"}
str.gsub!(/".*?"/) do |substr|
  substr.gsub(/&/, '$')
end
puts str
# => & is here "$ is here also , $ has again occured"

编辑:刚注意到 stribizhev 在我写之前就提出了这种方法。