我尝试将换行符插入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
个字符。
答案 0 :(得分:2)
\n
是换行符的转义码。 \
转义仅在Ruby源文件中包含的文字字符串中工作。从外部来源读取时,\n
只是文字字符\
和n
。
如果您希望能够在输入文件中使用\n
指定换行符,则可以轻松修复
replace = replace.gsub('\n', "\n")
使用replace
之前。这会将\n
中的文字replace
替换为实际换行符。