Простое расщепление строки? - PullRequest
1 голос
/ 10 июля 2010

У меня есть строка, которую я хочу разделить: D017209D019169D019014 на D017209, D019169 и D019014 с запятыми между ними.

Если у меня есть

a = D017209D019169D019014
b = a.slice("D")
puts b

Мой результат выглядит так:

017209
019169
019014

Чего мне не хватает?

Ответы [ 2 ]

5 голосов
/ 10 июля 2010
"D017209D019169D019014".scan(/D[^D]*/)

Сканирование возвращает массив всех совпадений, что именно здесь вы и хотите. Регулярное выражение просто означает D, за которым следует ноль или более не-D.

0 голосов
/ 10 июля 2010

функция разделения строк всегда удаляет терминатор. Вы хотите подстроки, которые начинаются с 'D'. Регулярное выражение было бы лучше здесь

a.scan(/D[0-9]*/).each do |line|
  #do stuff with each piece of data
end

Кстати, как я уже сказал в своем комментарии, я абсолютно НЕ эксперт по регулярным выражениям, даже не очень хорошо. Итак, если кто-то найдет в этом зияющее целое, дайте мне знать, но он должен работать с вашим входом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...