регулярное выражение для соответствия содержимого, не содержащего несколько предложений, включая разрывы строк - PullRequest
1 голос
/ 15 февраля 2020

Я пытаюсь сопоставить контент, который не содержит три отдельных предложения, включая разрывы строк.

one sentence
another one
last one

Я пробовал это:

^((?!this sentence|another one|last one).)*$

, который работает, но только вдоль одной строки, как я могу сделать так, чтобы он совпадал при нескольких разрывах строки? Это должно соответствовать что-то вроде этого:

None of the sentences
are included in this
paragraph, so it should
match the whole content

Ответы [ 2 ]

2 голосов
/ 15 февраля 2020

Это то, что вы ищете ^(((?!this sentence|another one|last one)(?:.|\n))*)$.

1 голос
/ 15 февраля 2020

Вы можете сопоставить все строки, которые не начинаются с какой-либо из опций, используя отрицательный прогноз.

^(?:(?!this sentence|another one|last one).*\r?\n)*(?!this sentence|another one|last one).*
  • ^ Начало строки
  • (?: Группа без захвата
    • (?!this sentence|another one|last one) Утверждение без опций
    • .*\r?\n
  • )* Закрыть группу и сопоставить 0+ раз
  • (?!this sentence|another one|last one) Утверждение без опций
  • .* Соответствие любому символу 0+ раз

regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...