我需要一个.NET正则表达式,匹配除了指定的完全字符串匹配之外的任何内容。基本上是这样的:
^Index$
...是我关心的唯一例外。字符串可以以"Index"开头、结尾或包含它,但不完全匹配。
答案必须通过模式本身得出,因为我正在向第三方库传递参数,并且除了通过Regex模式之外,我无法控制该过程。
^(?!Index$)
如果需要使用正则表达式,
Match match = Regex.Match(input, @"^Index$");
if (!match.Success){
// Do something
}
并且以一种可怕的方式
Match match = Regex.Match(input, @"^(.*(?<!Index)|(?!Index).*)$");
if (match.Success){
// Do something
}
注意:第二个示例未经过测试,正则表达式引擎需要支持完全的前瞻和后顾。
if (!r.Match("^Index$").Success) ...
。!regex.Match.Success
。
myString != "Index"
的比较来更简单地实现这个功能,这样就不必担心正则表达式了。 - alastairs