2011-11-16 52 views
4

我有我想从一个字符串删除的字符数组:如何将数组传递给sub或gsub红宝石?

stops = ["[", "]", "^", "(", ")", "#", "*", "?", "~"]

我希望能够通过该阵列,并有去除,使得这些字符的所有实例:

"str [with] unwanted# char*acters"

成为

"str with unwanted characters"

回答

9

如果您需要删除字符,你可以使用#delete

str.delete "[]^()#*?~" 
+0

这是简单的!哈哈:)比使用数组更好 – user1049097

10
"str [with] unwanted# char*acters".gsub(Regexp.union(stops), '') 
# => "str with unwanted characters" 
0
str.tr('[]^()#*?~','') 
str.tr('[]^()#*?~','abcdefghi') 
+1

欢迎来到堆栈溢出!尽管这段代码可能会解决这个问题,其中包括* how *和* why *的解释,这可以解决问题[真的有所帮助](// meta.stackexchange.com/q/114762)来提高帖子的质量。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –