C# Regex to match a string that doesn't contain a certain string?

后端 未结 2 436
轻奢々
轻奢々 2020-12-13 18:17

I want to match any string that does not contain the string \"DontMatchThis\".

What\'s the regex?

相关标签:
2条回答
  • 2020-12-13 18:38

    try this:

    ^(?!.*DontMatchThis).*$
    
    0 讨论(0)
  • 2020-12-13 18:57

    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 if DontMatchThis is expected closer to the string start) followed with DontMatchThis
    • .* - any zero or more characters, as many as possible, up to
    • $ - the end of string (see Anchor Characters: Dollar ($)).
    0 讨论(0)
提交回复
热议问题