用双引号字符串替换'with \'

时间:2011-11-10 14:26:58

标签: ruby regex

任务很简单 - 我有一个像"I don't know"这样的字符串,我希望用'代替\'(我知道我不必逃避单引号)。我该怎么做?

1 个答案:

答案 0 :(得分:2)

尝试使用块形式,它应该适用于所有版本的Ruby:

s.gsub(/'/) {"\\'"}
# => "I don\\'t know"

<强> [编辑]

原因是gsub method对替换字符串中的反斜杠序列有特殊处理,这些序列对应于特殊匹配变量。因此,您可以使用$'(以及$1等)格式直接在替换字符串中使用\\'(和\\1等)。

gsub的块形式没有这种行为,所以当您尝试在一个看起来像特殊反斜杠序列的字符串中进行子操作时,这是一种解决方法。