C# Regex to match a string that doesn't contain a certain string?
62,751
Solution 1
try this:
^(?!.*DontMatchThis).*$
Solution 2
The regex to match a string that does not contain a certain pattern is
(?s)^(?!.*DontMatchThis).*$
If you use the pattern without the (?s)
(which is an inline version of the RegexOptions.Singleline
flag that makes .
match a newline LF symbol as well as all other characters), the DontMatchThis
will only be searched for on the first line, and only a string without LF symbols will be matched with .*
.
Pattern details:
-
(?s)
- a DOTALL/Singleline modifier making.
match any character -
^
- start of string anchor -
(?!.*DontMatchThis)
- a negative lookahead checking if there are any 0 or more characters (matched with greedy.*
subpattern - NOTE a lazy.*?
version (matching as few characters as possible before the next subpattern match) might get the job done quicker ifDontMatchThis
is expected closer to the string start) followed withDontMatchThis
-
.*
- any zero or more characters, as many as possible, up to -
$
- the end of string (see Anchor Characters: Dollar ($
)).
Author by
Shaul Behr
Husband, father, grandfather, software architect, Orthodox rabbi, fiction author, fitness enthusiast. https://shaulbehr.com
Updated on September 25, 2020Comments
-
Shaul Behr over 3 years
I want to match any string that does not contain the string "DontMatchThis".
What's the regex?