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

rob*_*ert 1 c# regex regex-negation

1)使用c#正则表达式

我目前有以下正则表达式

^(abc|def)$
Run Code Online (Sandbox Code Playgroud)

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

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

if(!rgx.IsMatch(somestring)){
// do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

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

if(rgx.IsMatch(somestring)){
// do stuff
}
Run Code Online (Sandbox Code Playgroud)

某些字符串的预期结果

废话 --> 正确

abc 等等 --> 正确

abc --> 假

def --> 假

废话定义 --> 正确

希望这是有道理的..提前致谢。

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

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

Szy*_*mon 7

您可以使用这个正则表达式。它检查开始标记后面^是否没有跟随abcdef直到结束标记$

^(?!(abc|def)$).*
Run Code Online (Sandbox Code Playgroud)

  • 泰。我实际上是在尝试不带 .* 的“^(?!(abc|def)$)”...正则表达式很奇怪哈哈。再次发送 (2认同)