2013-08-27 2 views
2

Например, в качестве входных данных я могу получить "qwer.qwer" или "qwer qwer". В обоих случаях мне нужно разделить эту строку таким образом я получаю результат:Как разбить строку пробелом или точкой?

["qwer", "qwer"] 

Могу ли я использовать регулярное выражение как сплитер, и что это регулярное выражение должно выглядеть?

+1

http://www.regular-expressions.info/charclass.html –

ответ

6
'qwer.qwer'.split(/\s|\./) 
# => ["qwer", "qwer"] 
'qwer qwer'.split(/\s|\./) 
# => ["qwer", "qwer"] 
4

Используйте класс символов [.\s]:

"qwer.qwer".split(/[.\s]/) # => ["qwer", "qwer"] 
"qwer qwer".split(/[.\s]/) # => ["qwer", "qwer"] 
+0

Спасибо. Мне нужно изучить больше регулярных выражений)) –

3

ли, как показано ниже, используя String#scan вместо Strin#split:

"qwer.qwer".scan(/\w+/) 
# => ["qwer", "qwer"] 
"qwer qwer".scan(/\w+/) 
# => ["qwer", "qwer"] 
+0

Первая версия была технически ближе к тому, что хотел плакат. Может быть, вы должны использовать оба. – nneonneo

+2

@nneonneo Не голосуйте за такие глупые вещи. Хорошо использовать 'String # scan' вместо' splitting'. OP может не думать о том, что существует метод '# scan'. –

+0

не был моим нисходящим – nneonneo

Смежные вопросы