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

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
25 нояб. 2024, в 14:51
10000 руб./за проект
25 нояб. 2024, в 14:41
20000 руб./за проект