替换字符串中的特殊字符
Replace special characters in string
我有这样的字符串
"Ruby & Rails"
"Ruby& Rails"
"Ruby !Rails"
我想将它们转换为 "Ruby-Rails"
。我该怎么做?
" Ruby ! Rails ".split(/\W+/).reject(&:empty?).join("-")
=> "Ruby-Rails"
假设 1,2,3 是序列号,实际上不存在于字符串中,您可以使用 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"
你可以使用 gsub。
string.gsub(/\s*\W+\s*/, "-")
或
string.gsub(/\W+/, "-")
我有这样的字符串
"Ruby & Rails"
"Ruby& Rails"
"Ruby !Rails"
我想将它们转换为 "Ruby-Rails"
。我该怎么做?
" Ruby ! Rails ".split(/\W+/).reject(&:empty?).join("-")
=> "Ruby-Rails"
假设 1,2,3 是序列号,实际上不存在于字符串中,您可以使用 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"
你可以使用 gsub。
string.gsub(/\s*\W+\s*/, "-")
或
string.gsub(/\W+/, "-")