替换字符串中的特殊字符

时间:2015-05-21 07:23:29

标签: ruby string special-characters

我有像

这样的字符串
  • "Ruby & Rails"
  • "Ruby& Rails"
  • "Ruby !Rails"

我想将它们转换为"Ruby-Rails"。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

假设1,2,3是序列号,而不是实际存在于String中,您可以使用splitjoin

a = "Ruby & Rails"
a.split(/\W+/).join("-")
# => "Ruby-Rails"

"Ruby& Rails".split(/\W+/).join("-")
# => "Ruby-Rails"

"Ruby !Rails".split(/\W+/).join("-")
# => "Ruby-Rails"

或者,如果序列号也是输入字符串的一部分:

"1. Ruby& Rails".split(/\W+|\d+/).reject(&:empty?).join("-")
# => "Ruby-Rails"

"2. Ruby& Rails".split(/\W+|\d+/).reject(&:empty?).join("-")
# => "Ruby-Rails"

"3. Ruby !Rails".split(/\W+|\d+/).reject(&:empty?).join("-")
# => "Ruby-Rails"

答案 1 :(得分:0)

" Ruby ! Rails ".split(/\W+/).reject(&:empty?).join("-")
=> "Ruby-Rails"

答案 2 :(得分:0)

你可以使用gsub。

string.gsub(/\s*\W+\s*/, "-")

OR

string.gsub(/\W+/, "-")