Исключить фразу из результата при помощи регулярных выражений
На вход приходит строка с наименованием системы и типом запроса. Пример:
Проблема в системе Наименование.
Такие типы запроса обрабатываются регуляркой через regex (Наименование|System)
Но нужно, чтобы не обрабатывались запросы на доступ в данную систему. Пример:
Предоставить доступ в Наименование.
Пытался использовать ^.*(Наименование|System)(?!.*(доступ Наименование|System)), но данная регулярка постоянно находит первую часть, что неверно.
Помогите написать корректное регулярное, пожалуйста.
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
^(?!.*доступ\s+в\s+(?:Наименование|System)).*(?:Наименование|System)
См. пример работы регулярного выражения.
Подробности
^- начало строки(?!.*доступ[а-яё]*\s+в\s+(?:Наименование|System)) - после ноля и более символов, отличных от символов перевода строки, не должно быть словдоступ в Наименованиеилидоступ в System`.*- ноль и более символов (отличных от символов перевода строки)(?:Наименование|System)- одно из двух строковых значений.