我用这个方法:
matchers = {'-\n' => '', '\n' => ' ', '&' => ''}
text.gsub(/-\n|\n|&/) { |match| matchers[match] }
gsub
用'\n'
取代''
,而不是' '
。由于关于转义字符的单引号和双引号之间存在差异,我认为这会做一些事情:
matchers = {"-\n" => '', "\n" => ' ', '&' => ''}
这实际上给了我想要的输出,但我无法弄清楚为什么。似乎'\n'
仍被删除,因为puts
没有新的排名,但它没有被替换。我将很感激解释。
在Ruby中,字符串文字"\n"
包含一个换行符。但'\n'
包含文字\
和文字n
字符。
作为一种风格指南,除了我和我教过的人之外,Ruby中没有人遵循,总是更喜欢单个'quotes'
,除非你需要双"quotes"
的特殊能力,比如你的实验。