我有两个不同的字符串输入:
commas = " e@test1.com,e@test2.com , e@test1.com , e@test3.com "
spaces = " e@test1.com e@test2.com e@test1.com e@test3.com "
我想创建一个产生逗号分隔值的函数,结果如下:
expected = "e@test1.com,e@test2.com,e@test1.com,e@test3.com "
有什么建议吗?也许正则表达式?
答案 0 :(得分:2)
或者这个:
string.strip.gsub(/[ ,]+/, ',')
注意:如您的示例所示,如果您想在字符串末尾保留空格,可以使用它(而不是strip
):
string.sub(/\A +/, '').gsub(/[ ,]+(?=[^ ,])/, ',')
答案 1 :(得分:1)
如果我正确理解了这个问题(为了保留最后的间距并仅用逗号分隔单词等),这是一种方法:
def modify(string)
string.scan(/[^\s,]+/).join(',') << string[/\s+$/]
end
modify " e@test1.com,e@test2.com , e@test1.com , e@test3.com "
#=> "e@test1.com,e@test2.com,e@test1.com,e@test3.com "
modify " e@test1.com e@test2.com e@test1.com e@test3.com "
#=> "e@test1.com,e@test2.com,e@test1.com,e@test3.com "