Ruby正则表达式和引号

问题描述 投票:0回答:1

我用这个方法:

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

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

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

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

ruby regex string
1个回答
-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.