2013-10-22 100 views
42

我想使用單個ruby命令按空白分隔字符串,'由多個分隔符分割字符串

  1. word.split將由空格分開;

  2. word.split(",")將由,分開;

  3. word.split("\'")將拆分'

如何一次完成所有三項?

+0

卡蘭,你可能已經注意到你沒有,只要它是雙引號之間逃脫單引號。 –

回答

89
word = "Now is the,time for'all good people" 
word.split(/[\s,']/) 
=> ["Now", "is", "the", "time", "for", "all", "good", "people"] 
+0

短而高效,+1 :) – zx81

+5

嘿,人們,感謝過去兩年的所有成員,但請不要忽略@goldgod的答案。 –

30

正則表達式。

"a,b'c d".split /\s|'|,/ 
# => ["a", "b", "c", "d"] 
+2

我錯過了你的回答。我更喜歡它,因爲它讀得更好(使用'或')。你忘了包含'| \ s',可能是因爲你誤解了這個問題。 –

+1

@CarySwoveland你說得對,謝謝! – oldergod

3
x = "one,two, three four" 

new_array = x.gsub(/,|'/, " ").split 
+0

我喜歡你的方法,是的它提供了正確的解決方案。 – Rishav

16

這裏是另一個問題:

word = "Now is the,time for'all good people" 
word.scan(/\w+/) 
# => ["Now", "is", "the", "time", "for", "all", "good", "people"]