2014-10-10 133 views
-1

我想删除双引号和反斜杠。删除反斜杠和引号

我的代码就像

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

我想

BU 

请帮助..

+3

什么语言?红宝石? – 2014-10-10 10:17:47

+0

“\”BU \“”.gsub \\“,'' - 不起作用 – kpp 2014-10-10 10:20:00

+0

@YuHao - 是的,这是一种红宝石语言 – kpp 2014-10-10 10:21:15

回答

0

试试这个:

a = "\"BU\"" 
print a.gsub('"','') 
#=> BU 
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 

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('"')