如何将 "\n"
而不是 "\n\n"
等替换为 "\n"
?
text1 = "Hello\nWorld"
text1.sub! "\n", " \n"
=> "Hello \nWorld"
text2 = "Hello\n\nWorld"
text2.sub! "\n\n", " \n"
=> "Hello \n\nWorld"
SHOULD BE: => "Hello\n\nWorld"
最佳答案
您可以使用正则表达式 /(?<!\n)\n(?!\n)/
, 匹配 \n
只有当它没有以另一个 \n
为前缀时并且后面没有 \n
.
text1 = "Hello\nWorld"
# => "Hello\nWorld"
text1.sub /(?<!\n)\n(?!\n)/, " \n"
# => "Hello \nWorld"
text2 = "Hello\n\nWorld"
# => "Hello\n\nWorld"
text2.sub /(?<!\n)\n(?!\n)/, " \n"
# => "Hello\n\nWorld"
关于ruby - 替换 "\n"但不是 "\n\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29837574/