Ruby - 替换\ n如果不是\\ n

时间:2015-12-29 02:41:00

标签: ruby regex

我尝试使用lookbehind执行正则表达式,将\n更改为,但,如果它是\\n。< / p>

我最接近的尝试没有效果:

text.gsub /(?<!\\)\n/, ''

不幸的是,lookbehind中没有多少反斜杠似乎可以解决这个问题。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

你需要在正则表达式中n之前加倍反斜杠,否则它会寻找换行符而不是字面反斜杠后跟n:

irb(main):001:0> puts "hello\\nthere\\\\n".gsub(/(?<!\\)\\n/, ' ')
hello there\\n

答案 1 :(得分:1)

你不需要任何特别的东西。 "\n"是一个字符。它不包含"\""n"字符。

text.gsub(/\n/, "")

但不是那样,你应该这样做:

text.gsub("\n", "")

text.tr("\n", "")

但我会这样做:

text.tr($/, "")