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