我正在尝试删除双引号和反斜杠。
我的代码就像
> "\"BU\"".gsub /"/, ''
=> "BU"
我想要
BU
请帮助..
答案 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#delete到String#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('"')