提前致谢...
我在ruby中使用正则表达式时遇到了一些麻烦,或者找到了从字符串中删除斜杠的方法。这是我的字符串的样子:
string = "word \/ word"
我试图删除反斜杠和斜杠;我想要这个结果:
string = "word word"
我想我错过了一些有逃脱角色的东西,或者谁知道什么!
我试过这个:
string.gsub(/\//, "")
将删除反斜杠,但保留斜杠。我尝试过各种各样的转义字符,甚至没有任何意义!
我对正则表达式感到非常糟糕,并且在使用字符串方面非常沮丧,我只是不知所措。我确定这是显而易见的,但我错过了什么?
答案 0 :(得分:4)
原因是因为/
和\
在Regexp中都不是有效字符。所以他们必须通过在他们面前加\
来逃脱。因此\
变为\\
而/
变为\/
。将这些放在另一组斜杠中以制作Regexp文字,我们得到:
string.gsub(/\\\//, "")
另一种写这个的方法是:
string.gsub(/#{Regexp.escape('\/')}/, "")
你应该查看rubular以获得开发Regexp字符串的好方法。
答案 1 :(得分:3)
str = "word \/ word"
p str.delete('\/') #=>"word word"
# to get rid of the double spaces:
p str.delete('\/').squeeze(' ') #=>"word word"
答案 2 :(得分:0)
它实际上是你想要的,但不是你想的原因:
string = "word \/ word"
# => "word / word"
string.gsub(/\//, "")
# => "word word"
注意:你需要gsub!如果要替换字符串
的内容