我有像
这样的字符串"Ruby & Rails"
"Ruby& Rails"
"Ruby !Rails"
我想将它们转换为"Ruby-Rails"
。我怎么能这样做?
答案 0 :(得分:2)
假设1,2,3是序列号,而不是实际存在于String中,您可以使用split
和join
:
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+/, "-")