Подтвердить что ты не робот

С# Regex соответствует строке, которая не содержит определенную строку?

Я хочу сопоставить любую строку, в которой не содержится строка "DontMatchThis".

Что такое регулярное выражение?

4b9b3361

Ответ 1

попробуйте следующее:

^(?!.*DontMatchThis).*$

Ответ 2

Регулярное выражение, соответствующее строке, не содержащей определенного шаблона,

(?s)^(?!.*DontMatchThis).*$

Если вы используете шаблон без (?s) (который является встроенной версией флага RegexOptions.Singleline, который позволяет . соответствовать символу LF новой строки, а также всем другим символам), DontMatchThis будет только поиск в первой строке, и только строка без символов LF будет соответствовать .*.

Сведения о шаблоне:

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