替换字符串中的特殊字符

Son*_*pta 2 ruby string special-characters

我有像这样的字符串

  • "Ruby & Rails"
  • "Ruby& Rails"
  • "Ruby !Rails"

我想将它们转换为"Ruby-Rails". 我怎样才能做到这一点?

shi*_*vam 5

例如,假设 1,2,3 是序列号,但实际上并不存在于字符串中,您可以使用splitand join:

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

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

"Ruby !Rails".split(/\W+/).join("-")
# => "Ruby-Rails"
Run Code Online (Sandbox Code Playgroud)

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

"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"
Run Code Online (Sandbox Code Playgroud)