Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 13:19   #1
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию Регулярное выражение

Здравствуйте.

Помогите: есть строка, вид:

Код:
{"do":"lo\"gin"
{ может быть, может не быть.

Нужно регулярным выражением вычленить do и lo"gin, " - специально экранирована, т.к. является частью второго значения.
Моя попытка:

Код:
/^(?:{)?"((?!:).*)"/
Понимаю, что ошибка где-то в логике регулярного выражения, но не могу понять, как сделать его так, чтобы работало так, как мне нужно


Заморачивался с Loohahead и прочими делами, но придумал, как сделать намного проще, кому понадобится:
Код:
/^(?:{)?(".*"):(".*")$/
Если в строке нет ", то : нужно экранировать, и регулярное выражение будет такое:
Код:
/^(?:{)?(.*)(?<!\\):(.*)$/

Если в переменных, в первом случае, могут быть ", то их тоже нужно экранировать и проверять это:
Код:
/^(?:{)?((?<!\\)".*(?<!\\)"):((?<!\\)".*(?<!\\)")$/

Последний раз редактировалось KoBaL; 12.01.2014 в 14:14.
KoBaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение. hacker_007 Общие вопросы Delphi 0 17.08.2012 19:05
регулярное выражение Alexandr555 Общие вопросы Delphi 3 07.04.2012 23:18
Регулярное выражение art-programs Общие вопросы Delphi 2 21.02.2012 11:58
Регулярное выражение Arassir PHP 4 16.03.2011 09:42
Регулярное выражение kpachbiu PHP 2 08.02.2011 21:36