我尝试在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
字符。
发布于 2018-06-06 06:29:30
\n
是换行符的转义代码。\
转义只适用于Ruby源文件中包含的文字字符串。当从外部源读取时,\n
只是文字字符\
和n
。
如果您希望能够在输入文件中使用\n
指定换行符,一个简单的修复方法是添加
replace = replace.gsub('\n', "\n")
在使用replace
之前。这将用实际的换行符替换replace
中的文字\n
。
https://stackoverflow.com/questions/50709665
复制相似问题