@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
DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?
https://regex101.com/r/g1zY3o/3

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

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

Похожие вопросы