Страница 1 из 1

regexp под PHP или JS

СообщениеДобавлено: Пт янв 20, 2012 23:23
Muerto
Нужен регвыр, который бы помог сплитнуть строку типа первый, второй, 3, "четыре, пять, шесть", семь, "восемь" восемь с половиной, девятый, "десять, стотыщьпятьсот" в массив с дроблением по запятой, но так, чтобы в кавычках не дробить (т. е. запятые в кавычках не являются сепараторами. В общем, на выходе из этой строки должен получиться массив
    первый
    второй
    3
    "четыре, пять, шесть"
    семь
    "восемь" восемь с половиной
    девятый
    "десять, стотыщьпятьсот"
P.-S. Под PERL не предлагать.

Re: regexp под PHP или JS

СообщениеДобавлено: Пн янв 23, 2012 12:21
Jedi

Re: regexp под PHP или JS

СообщениеДобавлено: Ср янв 25, 2012 9:50
Лесьяр
("[0-9а-яё, ]*"|[0-9а-яё, ]*?)\s*(?:,|$)

Re: regexp под PHP или JS

СообщениеДобавлено: Ср янв 25, 2012 9:55
Лесьяр
Вот так лучше:
("[^"]*"[^,]*?|[^,]*?)\s*(?:,|$)\s*

Но, если внутри кавычек будут другие кавычки не сработает, тут надо знать по какому принципу экранируются кавычки в кавычках)

Re: regexp под PHP или JS

СообщениеДобавлено: Ср янв 25, 2012 9:58
Лесьяр
Еще оптимизировал:
((?:"[^"]*")?[^,]*?)\s*(?:,|$)\s*

Re: regexp под PHP или JS

СообщениеДобавлено: Ср янв 25, 2012 12:51
Jedi
А нафига регэкспом если можно стандартную пхп функцию использовать? Там в параметрах указать разделитель(запятая) и считать ли строку в кавычках как одну целую

Re: regexp под PHP или JS

СообщениеДобавлено: Ср янв 25, 2012 12:52
Jedi
Потому как я понимаю - это строка CSV формата?

Re: regexp под PHP или JS

СообщениеДобавлено: Ср янв 25, 2012 16:00
Лесьяр
А если js?

Re: regexp под PHP или JS

СообщениеДобавлено: Чт янв 26, 2012 8:56
Jedi
Если JS то да. но вопрос то был либо ПХП либо JS. можно на пхп выполнить, а результат отдать JS :)

Re: regexp под PHP или JS

СообщениеДобавлено: Пн фев 06, 2012 14:16
Muerto
Всем спасибо. Регекспы не проверял, поскольку заказ уплыл.