将换行符(\ n)插入gsub替换参数

时间:2018-06-05 22:13:35

标签: ruby regex variables

我尝试将换行符插入gsub替换模式。如果替换是双引号字符串文字,如"text\ntext",则它有效,但如果替换是变量则不行。这可能与我如何引用我的替换字符串有关。

如果我这样做:

replace = "\n// some text"
text.gsub!(/#{find}/, replace)

它运作得很好。

但是当包含\n的替换字符串写入文件时,

\n// some text

通过File.open阅读,并存储为字符串,然后替换为:

text.gsub!(/#{find}/, "#{replace}")
text.gsub!(/#{find}/, replace)

插入文字\n个字符。

1 个答案:

答案 0 :(得分:2)

\n是换行符的转义码。 \转义在Ruby源文件中包含的文字字符串中工作。从外部来源读取时,\n只是文字字符\n

如果您希望能够在输入文件中使用\n指定换行符,则可以轻松修复

replace = replace.gsub('\n', "\n")

使用replace之前。这会将\n中的文字replace替换为实际换行符。