繁体   English   中英

正则表达式匹配除字符列表之外的所有内容

[英]Regex to match everything except a list of characters

我想匹配包含除指定字符[I|V|X|M|C|D|L]之外的所有内容的行。

new Regex(@"^(.*) is (?![I|V|X|M|C|D|L].*)$")

应该匹配除OR列表中提到的字符之外的所有内容。

应该匹配 -

name is a

不应该匹配 -

edition is I

试试这个模式:

^[^IVXMCDL]*$

这将匹配字符串的开头,然后是零个或多个字符类中指定的字符以外的字符,然后是字符串的结尾。 换句话说,它不会匹配任何包含这些字符的字符串。

另请注意,根据您的使用方式,您可能可以使用更简单的模式,如下所示:

[IVXMCDL]

并拒绝任何与模式匹配的字符串。

你不需要| 在这种情况下,只需使用^[^IVXMCDL]*$

^[^IVXMCDL]*$

正则表达式可视化

调试器演示

 private  bool IsValid(String input)
        {
            bool isValid = false;
            // Here we call Regex.Match.
            Match match = Regex.Match(input, @"^[^IVXMCDL]*$");

            // Here we check the Match instance.
            if (match.Success)
            {
               isValid = true;
            }
            else
            {
                isValid = false;
            }

          return isValid;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM