如何将这个字符串变成没有斜杠的普通字符串?
我有如下代码:
"3e265629c7ff56a3a88505062dd526bd\""
我希望:
"3e265629c7ff56a3a88505062dd526bd"
如何将这个字符串变成没有斜杠的普通字符串?
我有如下代码:
"3e265629c7ff56a3a88505062dd526bd\""
我希望:
"3e265629c7ff56a3a88505062dd526bd"
您所拥有的:
"3e265629c7ff56a3a88505062dd526bd\""
等同于:
'3e265629c7ff56a3a88505062dd526bd"'
string.tr!('"', '')
请记住,所有特殊字符都需要使用反斜杠进行转义。这不仅包括像换行符\n
或回车符\r
之类的内容,还包括引号"
或反斜杠本身\\
。
tr
在删除或重新映射字符方面非常快速。gsub
可以给你相同的结果,但它需要编译和应用正则表达式,无法匹配tr
的简单性和速度。对于单个调用,差异微不足道,但在循环中,使用tr
会有巨大的收益。 - tadman这个怎么样?
s = "3e265629c7ff56a3a88505062dd526bd\""
s[/\w+/]
# => "3e265629c7ff56a3a88505062dd526bd"
String#[]
方法,所以这很有趣。 - tadman"3e265629c7ff56a3a88505062dd526bd\"".tr('^A-Za-z0-9','')
这个函数将除了字母和数字以外的所有字符替换成一个没有字符的字符串。 这里 是该函数的参考。
希望它能对你有用。
这是另一种方式:"3e265629c7ff56a3a88505062dd526bd\"".delete ?"
str = "3e265629c7ff56a3a88505062dd526bd\""
str.gsub(%r{\"}, '')
=> "3e265629c7ff56a3a88505062dd526bd"
Ruby的String#[]
是你的好帮手。从以下开始:
foo = "3e...bd\""
以下是获取值的替代方法,无需尾随嵌入引号:
# delete it
foo[-1] = ''
foo['"'] = ''
foo[/"$/] = ''
或者:
# skip it
foo[0..-2]
/
,反斜杠是 \。这两者的区别可能看起来很微小,但在 Ruby 中它们有完全不同的含义,因此非常重要。 - tadman