Ruby 在每次出现特定字符时拆分字符串?

Ruby 在每次出现特定字符时拆分字符串?,ruby,regex,string,Ruby,Regex,String,我希望将一个字符序列作为字符串传递到函数中,并将其返回给我,该字符串拆分为以下字符: @ # $ % ^ & * 这样,如果字符串 'hey#man^you*are#awesome' 程序返回 “嘿,伙计,你真棒” 我该怎么做?要拆分字符串,可以使用string\split 'hey#man^you*are#awesome'.split(/[@#$%^&*]/) #=> ["hey", "man", "you", "are", "awesome"] 要将其重新组合在一

我希望将一个字符序列作为字符串传递到函数中,并将其返回给我,该字符串拆分为以下字符:

@ # $ % ^ & *
这样,如果字符串

'hey#man^you*are#awesome'
程序返回

“嘿,伙计,你真棒”


我该怎么做?

要拆分字符串,可以使用
string\split

'hey#man^you*are#awesome'.split(/[@#$%^&*]/)
#=> ["hey", "man", "you", "are", "awesome"]
要将其重新组合在一起,可以使用
Array#join

'hey#man^you*are#awesome'.split(/[@#$%^&*]/).join(' ')
#=> "hey man you are awesome"
split
join
应该是不言自明的。有趣的部分是正则表达式
/[@$%^&*]/
,它匹配字符类
[…]
中的任何字符。上述代码本质上等同于

'hey#man^you*are#awesome'.gsub(/[@#$%^&*]/, ' ')
#=> "hey man you are awesome"

其中,
gsub
表示“用空格全局替换出现的任何@$%^&*”

要拆分字符串,可以使用
string\split

'hey#man^you*are#awesome'.split(/[@#$%^&*]/)
#=> ["hey", "man", "you", "are", "awesome"]
要将其重新组合在一起,可以使用
Array#join

'hey#man^you*are#awesome'.split(/[@#$%^&*]/).join(' ')
#=> "hey man you are awesome"
split
join
应该是不言自明的。有趣的部分是正则表达式
/[@$%^&*]/
,它匹配字符类
[…]
中的任何字符。上述代码本质上等同于

'hey#man^you*are#awesome'.gsub(/[@#$%^&*]/, ' ')
#=> "hey man you are awesome"

其中,
gsub
表示“用空格全局替换出现的任何@$%^&*”

要拆分字符串,可以使用
string\split

'hey#man^you*are#awesome'.split(/[@#$%^&*]/)
#=> ["hey", "man", "you", "are", "awesome"]
要将其重新组合在一起,可以使用
Array#join

'hey#man^you*are#awesome'.split(/[@#$%^&*]/).join(' ')
#=> "hey man you are awesome"
split
join
应该是不言自明的。有趣的部分是正则表达式
/[@$%^&*]/
,它匹配字符类
[…]
中的任何字符。上述代码本质上等同于

'hey#man^you*are#awesome'.gsub(/[@#$%^&*]/, ' ')
#=> "hey man you are awesome"

其中,
gsub
表示“用空格全局替换出现的任何@$%^&*”

要拆分字符串,可以使用
string\split

'hey#man^you*are#awesome'.split(/[@#$%^&*]/)
#=> ["hey", "man", "you", "are", "awesome"]
要将其重新组合在一起,可以使用
Array#join

'hey#man^you*are#awesome'.split(/[@#$%^&*]/).join(' ')
#=> "hey man you are awesome"
split
join
应该是不言自明的。有趣的部分是正则表达式
/[@$%^&*]/
,它匹配字符类
[…]
中的任何字符。上述代码本质上等同于

'hey#man^you*are#awesome'.gsub(/[@#$%^&*]/, ' ')
#=> "hey man you are awesome"
其中,
gsub
表示“用空格全局替换出现的@$%^&*”

也可以使用,这样就避免了将数组转换回字符串的需要:

'hey#man^you*are#awesome'.tr('@#$%^&*', '       ')
  #=> "hey man you are awesome" 
您还可以使用,这样就无需将数组转换回字符串:

'hey#man^you*are#awesome'.tr('@#$%^&*', '       ')
  #=> "hey man you are awesome" 
您还可以使用,这样就无需将数组转换回字符串:

'hey#man^you*are#awesome'.tr('@#$%^&*', '       ')
  #=> "hey man you are awesome" 
您还可以使用,这样就无需将数组转换回字符串:

'hey#man^you*are#awesome'.tr('@#$%^&*', '       ')
  #=> "hey man you are awesome" 

要拆分还是替换为空格?要拆分还是替换为空格?要拆分还是替换为空格?要拆分还是替换为空格?要拆分还是替换为空格?解释得很好,p11y+1您提到了
split/join
gsub
作为选项,但似乎更倾向于前者。我认为
gsub
更可取,因为它直接作用于字符串,而不是转换为数组然后返回字符串。我个人认为,
gsub
读起来也更好。你是怎么想的?很好的解释,p11y+1您提到了
split/join
gsub
作为选项,但似乎更倾向于前者。我认为
gsub
更可取,因为它直接作用于字符串,而不是转换为数组然后返回字符串。我个人认为,
gsub
读起来也更好。你是怎么想的?很好的解释,p11y+1您提到了
split/join
gsub
作为选项,但似乎更倾向于前者。我认为
gsub
更可取,因为它直接作用于字符串,而不是转换为数组然后返回字符串。我个人认为,
gsub
读起来也更好。你是怎么想的?很好的解释,p11y+1您提到了
split/join
gsub
作为选项,但似乎更倾向于前者。我认为
gsub
更可取,因为它直接作用于字符串,而不是转换为数组然后返回字符串。我个人认为,
gsub
读起来也更好。你对此有何想法?