Задать вопрос
@Web__Devel

Как сделать так, чтобы регулярное выражение срабатывало, только если найдено как минимум два negate-совпадения?

Здравствуйте. Допустим имеются такие строки:
..some_text_and_linebreaks..
    Mike: Using some_1eyword
..some_text_and_linebreaks..
    Sonya: Using another_1eyword
..some_text_and_linebreaks..

И имеется регулярное выражение, которое проверяет правильно ли пишут часть слова "_keyword", и если пишут неправильно то происходит match:
(?:(?:Mike: |Sonya: )((?!.*_keyword).*))

Требуется сделать так, чтобы match происходил, только если слово "_keyword" было указано неправильно в обеих строках сразу. То есть если в одной строке "_keyword" написали правильно, то match не должен происходить (regex на это не должен реагировать):
..some_text_and_linebreaks..
    Mike: Using some_keyword
..some_text_and_linebreaks..
    Sonya: Using another_1eyword
..some_text_and_linebreaks..

Сам пока не могу разобраться. Вроде должно работать как-то так, но оно делает совершенно не то, что ожидаю:
(?!.*(Mike: .*_keyword.*Sonya: .*_keyword)).*
Посмотреть regex можно здесь
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?
https://regex101.com/r/g1zY3o/3

(?:Mike: ((?!.*_keyword).*))[\s\S]*(?:Sonya: ((?!.*_keyword).*))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
05 янв. 2025, в 03:02
5000 руб./за проект
05 янв. 2025, в 02:59
10000 руб./за проект