-2

我的输入字符串是:

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

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

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

预期输出如图所示:

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

1 回答 1

1
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 在我写它之前提出了这种方式。

于 2016-01-13T08:07:50.760 回答