2013-06-07 2 views
1

Я хотел бы разбить строку на последовательности пробелов.Сплит-строка по пробелу

Например, эта строка: "\tFirst \t\tSecond Third \t" должен быть массив как это: ['First', 'Second', 'Third']

К сожалению @array = str.split(' ') или str.split('\t') не работает в этом случае.

+2

Я думаю, что вы должны принять ответ @ steenslag вместо моего. Но это ваш звонок. –

ответ

2

String#split может принимать регулярное выражение (documentation)

s = "\tFirst \t\tSecond Third \t" 

s.split(/\s/).reject(&:empty?) # => ["First", "Second", "Third"] 
+1

's.strip.split (/ \ s + /)' будет работать и здесь. –

+0

@ChrisHeald: это было бы действительно. –

14

ничего не делать, просто расколоть. Пробел по умолчанию!

p "\tFirst \t\tSecond Third \t".split # => ["First", "Second", "Third"] 
+0

Хм, не знал этого. –

+0

Точно верно. Per the Ruby ['String # split 'documentation] (http://www.ruby-doc.org/core-1.9.3/String.html#method-i-split):« если шаблон опущен ... str разделяется на пробелы ". – maerics

1

Вы также можете использовать String#scan.

"\tFirst \t\tSecond Third \t".scan(/\w+/) # => ["First", "Second", "Third"] 
Смежные вопросы