C# 如何指定不应匹配的模式

C# 如何指定不应匹配的模式,c#,regex,C#,Regex,假设input=“Hello”和pattern是“World” 我想确定输入中不会出现thr模式。 由于模式不在输入中出现,因此Regex.IsMatch应返回true 我如何用C#编写模式通常不使用正则表达式检查某个子字符串是否不存在。 虽然在某些(regex实现)中可以使用零宽度负lookarounds(),但不一定对每个输入都可以。当您希望通过断言某些子类在匹配之前/之后/之内不存在,从而避免正则表达式中的指数匹配失败时,主要使用负的前向/后向断言。它们还(更常用)用于搜索不能以其他模式开

假设input=“Hello”和pattern是“World” 我想确定输入中不会出现thr模式。 由于模式不在输入中出现,因此Regex.IsMatch应返回true


我如何用C#

编写模式通常不使用正则表达式检查某个子字符串是否不存在。

虽然在某些(regex实现)中可以使用零宽度负lookarounds(),但不一定对每个输入都可以。当您希望通过断言某些子类在匹配之前/之后/之内不存在,从而避免正则表达式中的指数匹配失败时,主要使用负的前向/后向断言。它们还(更常用)用于搜索不能以其他模式开头或后面的匹配项

相反,只需检查输入中是否存在该模式,然后返回Regex.IsMatch的否定:

var input = "Hello";
var regEx = new Regex("World");
return !regEx.IsMatch(input);
您可以使用:


但我只是在这样的条件下提供这些信息,即你不仅要做正确的事情,而且要做正确的事情(当你可以否定
IsMatch
result时),相反,我希望在更合理的地方有一个否定的断言。

问题是模式来自配置文件,我希望以同样的方式运行匹配
Regex.IsMatch("Hello", "(?!World)") // Returns true