Ответ 1
попробуйте следующее:
^(?!.*DontMatchThis).*$
Я хочу сопоставить любую строку, в которой не содержится строка "DontMatchThis".
Что такое регулярное выражение?
попробуйте следующее:
^(?!.*DontMatchThis).*$
Регулярное выражение, соответствующее строке, не содержащей определенного шаблона,
(?s)^(?!.*DontMatchThis).*$
Если вы используете шаблон без (?s)
(который является встроенной версией флага RegexOptions.Singleline
, который позволяет .
соответствовать символу LF новой строки, а также всем другим символам), DontMatchThis
будет только поиск в первой строке, и только строка без символов LF будет соответствовать .*
.
Сведения о шаблоне:
(?s)
- модификатор DOTALL/Singleline, который делает .
совпадением с любым символом^
- начало привязки строки(?!.*DontMatchThis)
- a негативный просмотр, проверяя наличие 0 или более символов (совпадающих с жадным .*
subpattern - ПРИМЕЧАНИЕ версия lazy .*?
(совпадающая как несколько символов, насколько возможно до следующего соответствия подшаблона) может ускорить выполнение задания, если DontMatchThis
ожидается ближе к началу строки) затем DontMatchThis
.*
- любые ноль или более символов, насколько это возможно, до$
- конец строки (см. Символы привязки: доллар ($
)).