Ruby 替换字符串中的特殊字符
我有像Ruby 替换字符串中的特殊字符,ruby,string,special-characters,Ruby,String,Special Characters,我有像 “Ruby&Rails” “Ruby&Rails” “Ruby!Rails” 我想将它们转换成“Ruby Rails”。如何执行此操作?假设1,2,3是序列号,而不是实际存在于字符串中,则可以使用拆分和加入: " Ruby ! Rails ".split(/\W+/).reject(&:empty?).join("-") => "Ruby-Rails" a = "Ruby & Rails" a.split(/\W+/).join("-") # => "R
“Ruby&Rails”
“Ruby&Rails”
“Ruby!Rails”
我想将它们转换成
“Ruby Rails”
。如何执行此操作?假设1,2,3是序列号,而不是实际存在于字符串中,则可以使用拆分和加入:
" Ruby ! Rails ".split(/\W+/).reject(&:empty?).join("-")
=> "Ruby-Rails"
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*/, "-")
或
是否要删除1
,2
?否。我想将字符串(如1,2,3)转换为Ruby Rails。它们都是具有特殊字符的不同版本。输入字符串中是否实际存在1、2、3?我需要在拆分中提供所有特殊字符?有没有办法给出一些正则表达式?是的,\W
:任何非单词字符
string.gsub(/\W+/, "-")