Строка разделена двумя разными разделителями

У меня есть такие строки, как "some-dasd\dasd-dasdas\dasdas-dasd-das\dsad". Мне нужно разбить строку на массив двумя разными символами '\' и '-', поэтому я хотел бы получить массив ['some', 'dasd', 'dasd', 'dasdas', 'dasdas', 'dasd', 'das' ,'dsad'].

Как лучше всего это сделать?


person demas    schedule 21.02.2012    source источник


Ответы (2)


"ome-dasd\dasd-dasdas\dasdas-dasd-das\dsad".split(/\\|-/)

должен сделать свое дело.

person lucapette    schedule 21.02.2012
comment
Но это не работает для случая, когда разделители находятся рядом друг с другом \ - дает вам несколько пустых элементов. - person Michael K Madison; 22.10.2013

Вы можете разделить строку с помощью регулярного выражения:

 mystring.split(/[-\\]/)
person Pafjo    schedule 21.02.2012
comment
@lucapette, вам придется извинить мое относительное незнание регулярного выражения - и этот, и ваш ответ кажутся мне равносильными? Почему одно лучше другого? - person Russell; 21.02.2012
comment
@Russel Они абсолютно эквивалентны с точки зрения сопоставления, но этот более лаконичен и более удобен в обслуживании. Например, предположим, что вы хотите добавить %. Этот станет [-\\%], мой станет \\|-|%. И, наверное, это тоже дело вкуса :) - person lucapette; 21.02.2012
comment
Да, я думаю, вы правы, он более читабелен / удобен в обслуживании, особенно когда добавляется больше символов. Однако педант во мне считает, что будет справедливо указать, что в вашем ответе используется меньше символов в примере с двумя символами и такое же число в примере с тремя символами! - person Russell; 21.02.2012