删除反斜杠和引号

时间:2014-10-10 10:15:39

标签: ruby regex

我正在尝试删除双引号和反斜杠。

我的代码就像

> "\"BU\"".gsub /"/, ''
=> "BU"

我想要

BU

请帮助..

3 个答案:

答案 0 :(得分:1)

默认情况下,irb提示符会以"string"的格式显示输出(即双引号内)。输入中不存在反斜杠,双引号被转义为文字"符号,因为输入字符串在分隔符双引号内,同时将其分配给变量。如果您执行此s = ""BU""之类的字符串分配,则解释程序会将第二个"视为结束标记。您可以通过将字符串放在单引号内来避免此类问题(如果输入包含双引号,则为),反之亦然。如果两个引号都存在,那么转义引号是唯一的选择。使用print函数查看实际的变量内容。

irb(main):007:0> s = "\"BU\""
=> "\"BU\""
irb(main):008:0> print s
"BU"=> nil
irb(main):009:0> m = s.gsub(/"/, "")
=> "BU"
irb(main):010:0> print m
BU=> nil

答案 1 :(得分:0)

试试这个:

a = "\"BU\""
print a.gsub('"','')
#=> BU

答案 2 :(得分:0)

我更喜欢String#deleteString#gsub,因为它只需要一个参数并且读得更好:

s = "\BU\""
s.delete ?"  #=> "BU"
s            #=> "\BU\"" (s is unchanged)
s.delete! ?" #=> "BU"
s            #=> "BU"    (s is altered)

s.delete ?"s.delete '"'s.delete('"')

相同