与特定单词不匹配的正则表达式

时间:2014-04-17 03:25:10

标签: c# regex regex-negation

1)使用c#regex

我目前有以下正则表达式

^(abc|def)$

如果单词是“abc”或“def”,则返回true 我需要的是它匹配除了那两个单词之外的任何东西,包括包含这些单词的字符串。 我目前这样做

Regex rgx = new Regex("^(abc|def)$");

if(!rgx.IsMatch(somestring)){
// do stuff
}

我想要的是一个正则表达式,我不必使用运算符。所以我需要类似的东西(请参阅新正则表达式中的运算符,但它不起作用。)

Regex rgx = new Regex("^(!(abc|def))$");

if(rgx.IsMatch(somestring)){
// do stuff
}

somestring的预期结果

blah - >真

abc blah - >真

abc - >假

def - >假

blah def - >真

希望这是有道理的...事先感谢。

只是为了澄清,我不想在字符串中找到单词,我想将整个字符串与正则表达式进行比较...因此 ^()$

至于为什么不使用!rgx.IsMatch,我只想说我只是想看看是否可以使用正则表达式

1 个答案:

答案 0 :(得分:3)

你可以使用这个正则表达式。它会检查开始标记^是否跟abcdef后跟$结束。

^(?!(abc|def)$).*