正则表达式替换[与\ [

时间:2014-05-05 17:25:22

标签: ruby regex

我想在Ruby中编写一个正则表达式,它会在任何空方括号之前添加一个反斜杠。

str = "my.name[0].hello.line[2]"
out = str.gsub(/\[/,"\\[")

# desired out = "my.name\[0].hello.line\[2]"

我在替换字符串中尝试了多个反斜杠组合,但不能让它留下一个反斜杠。

2 个答案:

答案 0 :(得分:2)

这里你不需要正则表达式。

str = "my.name[0].hello.line[2]"    
puts str.gsub('[', '\[')
# my.name\[0].hello.line\[2]

答案 1 :(得分:2)

我尝试了你的代码并且工作正确:

str = "my.name[0].hello.line[2]"
out = str.gsub(/\[/,"\\[")
puts out  #my.name\[0].hello.line\[2]

如果将puts替换为p,则会获得该字符串的inspect-version:

p out  #"my.name\\[0].hello.line\\[2]"

请参阅"和屏蔽\。也许你看到了这个结果。

作为Daniel already answered:您还可以使用'定义字符串,而不需要屏蔽这些值。