如何在Ruby中基于多个条件拆分字符串

时间:2016-07-16 19:46:33

标签: ruby split

我的Ruby程序中存在以下问题:

$.get(chrome.extension.getURL('menu.html'), function(data2) {$(data2).appendTo('body');});

我想用逗号分割输入的字符串;但是,由于用户输入的差异,我希望能够根据","进行分割。或","

我能找到的所有东西都在谈论语法,例如/ \ s |,/ etc;但是,这种语法似乎没有考虑引文中的任何内容。我尝试使用/ \ W /也将字符串拆分为单词和空格数组。我可以使用这个,但不知道如何摆脱" "在一个如下所示的数组中:

def prompt(*input)
  print *input
  gets.strip()
end

def what_up(greeting, bros)
  bros.each { |bro| puts "What up #{bro}!"}
end

friends = (prompt "List all of your friends, separate them by commas!").split(HELP)

what_up("What up", friends)

变成

["Hello", " ", "Great", " ", "World"] 

3 个答案:

答案 0 :(得分:0)

您可以拒绝生成的数组中的任何空字符串,以下内容适用于我:

"hurp,durp, foo, bar,baz".split(/\W/).reject(&:empty?) # => ["hurp", "durp", "foo", "bar", "baz"]

答案 1 :(得分:0)

这应该有效:

"Foo,bar, foo,  bar".split(",").map(&:strip) # => ["Foo", "bar", "foo", "bar"]

答案 2 :(得分:0)

str = "Humpty,  Dumpty,sat on a     wall"

str.split(/,\s*/) 
  #=> ["Humpty", "Dumpty", "sat on a", "wall"]

这个正则表达式("正则表达式")读取,"匹配逗号后跟零个或多个(*)空格字符(\s)" (这里只是空格)。

请参阅Regexp