web-dev-qa-db-ja.com

複数の区切り文字で文字列を分割

単一のRubyコマンドを使用して、文字列を空白(_,_および_'_)で分割したい。

  1. _Word.split_は空白で分割されます。

  2. Word.split(",")は_,_で分割されます。

  3. Word.split("\'")は_'_で分割されます。

3つすべてを一度に行う方法

52
Karan Verma
Word = "Now is the,time for'all good people"
Word.split(/[\s,']/)
 => ["Now", "is", "the", "time", "for", "all", "good", "people"] 
120
Cary Swoveland

正規表現。

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

ここに別のものがあります:

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

splitメソッドと Regexp.union 次のようなメソッド:

delimiters = [',', ' ', "'"]
Word.split(Regexp.union(delimiters))
# => ["Now", "is", "the", "time", "for", "all", "good", "people"]

区切り文字で正規表現パターンを使用することもできます。

delimiters = [',', /\s/, "'"]
Word.split(Regexp.union(delimiters))
# => ["Now", "is", "the", "time", "for", "all", "good", "people"]

このソリューションには、完全に動的な区切り文字または任意の長さを許可するという利点があります。

10
James Stonehill
x = "one,two, three four" 

new_array = x.gsub(/,|'/, " ").split
3
Beartech