Ruby正则表达式和引号

时间:2018-03-02 20:43:14

标签: ruby regex string

我使用了这种方法:

matchers = {'-\n' => '', '\n' => ' ', '&' => ''}
text.gsub(/-\n|\n|&/) { |match| matchers[match] }

gsub'\n'替换为'',而非' '。由于关于转义字符的单引号和双引号之间存在差异,我认为这会做一些事情:

matchers = {"-\n" => '', "\n" => ' ', '&' => ''}

这实际上给了我想要的输出,但我无法弄清楚为什么。似乎'\n'仍然被移除,因为puts上没有换行符,但它没有被替换。我很感激解释。

1 个答案:

答案 0 :(得分:-1)

在Ruby中,字符串文字"\n"包含一个换行符。但'\n'包含文字\和文字n字符。

作为一种风格指南,除了我和我教过的人之外,Ruby中没有人遵循它,除非你需要双'quotes'的特殊能力,例如你的实验,否则总是更喜欢单"quotes"。< / p>