Регулярное выражение для соответствия строке, которая не содержит определенного шаблона, равно
(?s)^(?!.*DontMatchThis).*$
Если вы используете шаблон без (?s)
(который является встроенной версией флага RegexOptions.Singleline
, в котором .
соответствует символу новой строки LF, а также всем другим символам), DontMatchThis
будет только выполняется поиск в первой строке, и только строка без символов LF будет сопоставляться с .*
.
Детали шаблона :
(?s)
- модификатор DOTALL / Singleline, заставляющий .
соответствовать любому символу
^
- начало привязки строки
(?!.*DontMatchThis)
- отрицательный прогноз проверка наличия 0 или более символов (соответствует жадному шаблону .*
- NOTE a lazy * Версия 1031 * (сопоставление как можно меньшего числа символов до следующего совпадения подшаблона) может выполнить работу быстрее, если ожидается, что DontMatchThis
ближе к началу строки) с последующим DontMatchThis
.*
- любой ноль или более символов, как можно больше, до
$
- конец строки (см. Символы привязки: доллар ($
) ).