2015-12-29 62 views
0

我试图做一个正面向后看的变化\n不是如果它是\\n红宝石 - 替代 n如果不是\

我最亲密的尝试没有效果:

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

不幸的是,没有号码的回顾后反斜杠似乎来解决这个问题。我该如何解决这个问题?

+0

你尝试'/(<? !\\)\\ n /'? (在'n'之前转义'\') – falsetru

+0

就是这样 - 谢谢! – sscirrus

回答

1

你需要在正则表达式的n之前反斜杠加倍,否则就找换行,而不是一个反斜杠后跟n:

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

你并不需要什么特别的。 "\n"是一个单个字符。它不包括"\""n"字符。的

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

而是说,你应该做的:

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

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

但我会做:

text.tr($/, "") 
+0

马克里德是第一个,但非常感谢你! +1 – sscirrus