![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
$line = 'Item1, "Folk, NewAge и Flamenco (DVD Video)", Item2,';
Нужно эту строку разбить в массив по определённому делителю (запятая). Но этот разделитель нужно проигнорировать, если он находится внутри кавычек. Т.е. нужно получить элементы: Item1 "Folk, NewAge и Flamenco (DVD Video)" Item2 кавычек может быть много, но они 1) не вложенные 2) всегда парные. запятых внутри кавычек может быть много. |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
perldoc Text::Balanced
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
|
|||
|
||||
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Logo, таким образом получается результат:
Item1 "Folk NewAge и Flamenco (DVD Video)" Item2 а нужно, чтобы получалось: Item1 "Folk, NewAge и Flamenco (DVD Video)" Item2 т.е. нельзя разделять по запятой, которая внутри кавычек. Добавлено через 4 минуты и 35 секунд Короче, вот решение (не мое): (?:[^,]++|,(?!([^"'']*+(?:"[^"]*+"|''[^'']*+'')?)*$))+ Это сообщение отредактировал(а) Suppir - 15.4.2010, 11:07 |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Исправлено
|
|||
|
||||
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Круто!
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |