我想在Ruby中编写一个正则表达式,它会在任何空方括号之前添加一个反斜杠。
str = "my.name[0].hello.line[2]"
out = str.gsub(/\[/,"\\[")
# desired out = "my.name\[0].hello.line\[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:您还可以使用'
定义字符串,而不需要屏蔽这些值。