@IlyaPrivolnov333

Как с помощью регулярного выражения находить в тексте определённые слова после определённого слова?

"{\"to_email\":\\"task_id\":\"39a84a7b-b937-4901-90a5-eb19a9411e7e\",\"cc\":[],\"bcc\":[],\"to\":{\"loaded_data\":null,\"generators\":[],\"account_name\":\"taxi\"},\"external_contract_id\":\"2291177/21\",\"reason\":\"notify\"}}"

Дан текст без пробелов. Как при помощи регулярного выражения находить определённые слова (debt, notify, another), если они идут после слова reason? То есть, если эти слова идут перед словом reason - они не должны находиться, если они есть после - должны.
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 2
Aetae
@Aetae
Тлен
Правильный ответ: использовать встроенный json-парсер того языка с которым работаете и не заниматься извращениями.
Хреновый ответ: /(?<="reason":")([^"]+)/ или /(?<=\\"reason\\":\\")(.+?)(?=\\")/ в зависимости насколько кривая у вас там строка. Оно без вариантов свалится если в искомом слове будут кавычки.
Ответ написан
Комментировать
Shellr57s
@Shellr57s
\breason\b.+\K(?:\bdebt\b|\bnotify\b|\banother\b)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы