代码之家  ›  专栏  ›  技术社区  ›  Kamilski81

如何将字符串转换为用ruby分隔的逗号?

  •  0
  • Kamilski81  · 技术社区  · 11 年前

    我有两个不同的字符串输入:

    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  " 
    

    有什么建议吗?也许是正则表达式??

    2 回复  |  直到 11 年前
        1
  •  2
  •   Casimir et Hippolyte    11 年前

    或者这个:

    string.strip.gsub(/[ ,]+/, ',')
    

    注意:如您的示例中所示,如果您希望在字符串末尾保留空格,可以使用this(而不是 strip ):

    string.sub(/\A +/, '').gsub(/[ ,]+(?=[^ ,])/, ',')
    
        2
  •  1
  •   Cary Swoveland    11 年前

    如果我正确理解了这个问题(在结尾处保留空格,仅用逗号分隔单词等),这是一种方法:

    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  "