Как в RegExp исключить отрицание и оставить только утверждение?
Нужно написать регулярку, которая будет находить только утвердительные ответы, а отрицательные - исключать.
Задаем пользователю закрытый вопрос, на который можно ответить либо утвердительно, либо отрицательно. Например, вопрос: «вам удобно разговаривать». Ответ пользователя «да».
Очевидно, что это ответ утвердительный, под него попадают близкие по смыслу варианты «да», «ну да», «в принципе да», «угу», «ага». Я написал регулярку, которая такие вопросы находит:
(?=.*(^|\s)(да|ага|угу)).*
Потом я подумал, что контекстуально на вопрос «удобно ли вам» может подойти утвердительный ответ пользователя «удобно». Я добавил этот вариант в регулярку.
(?=.*(^|\s)(удобно|да|ага|угу)).*
И тут появилась проблема. Проблема в том, что под получившуюся регулярку подходит как утвердительный ответ «удобно», «мне удобно», «в принципе удобно», «сейчас удобно», так и отрицательные ответы «не удобно»(с пробелом), «неудобно»(без пробела), «не очень удобно», «сейчас совсем не удобно».
Гуглил, но ничего подходящего не нашел. Из того, что мне удалось нагуглить, я составил такую регулярку, но она тоже не подходит:
(?=.*(?!не))(?=.*(^|\s)(удобно|да|ага|угу)).*
Подскажите, пожалуйста, как составить регуряное выражение, которое искало бы только утвердительные ответы, а отрицательные не искало бы? Насколько знаю, регулярки универсальны, но допустим, буду её использовать для Питона.
возможно сделать универсальный разбор с помощью регулярных нельзя, слишком много комбинаций.
Можно пробовать матч отдельно на Да и Нет. Сначала на нет проверить https://regex101.com/r/jJR5wU/1
(^не|\sне|неудобно).*(удобно)
мне не слишком удобно
не удобно
нет, не удобно
неудобно