Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Вопрос по функции SPLIT и символу разделителя |
Автор: itrex111 29.11.2012, 14:34 | ||||
Добрый день! Возникла следующая проблема имеется строка: (названия элементов строки динамически меняются) яблоко,груша,дыня,синяя слива,жёлтая слива, мне нужно эти данные занести в массив я делаю
Всё работает нормально, но как только в названии элемента встречается запятая например если:
такая структура массива ломается и парсер не работает Подскажите пожалуйста как побороть такую проблему? p/s (мне нужно парсить только по запятым) |
Автор: arto 29.11.2012, 14:52 |
",(?!\\s)" ? |
Автор: itrex111 29.11.2012, 15:00 | ||
Ваше рег. интерпретируется как найти запятую за которой нет пустого символа?? Я правильно понял??? |
Автор: itrex111 29.11.2012, 18:39 | ||
Большое спасибо!!! Немного подправил /,(?!\s[\w])/ и резко наступило счастье! |
Автор: arto 29.11.2012, 18:41 |
# perl -CSA -le 'print join "\n", split ",(?!\\s)", $ARGV[0]' 'яблоко,груша,дыня,синяя слива,жёлтая слива,малина, которая не упаков., ' яблоко груша дыня синяя слива жёлтая слива малина, которая не упаков., # Добавлено через 1 минуту и 27 секунд а зачем скобки класса? |
Автор: itrex111 30.11.2012, 00:34 | ||
В строке 'яблоко,груша,дыня,синяя слива,жёлтая слива,малина, которая не упаков., ' встретилось такая позиция 'яблоко,груша,дыня,синяя слива,жёлтая слива,малина, которая не упаков., (Овощи),' Пришлось добавить \w на один алфавитно цифровой символ Честно говоря я ещё не знаю точно какая конструкция встретится в строке нужно около недели понаблюдать. |
Автор: krypt3r 14.1.2013, 11:02 |
CSV уже не в почёте? |