如何在Regex中搜索模式时忽略特定字符串?

时间:2014-08-27 12:17:42

标签: c# regex regex-negation

我有一个查询,其中我用方括号中的关键字替换模式中指定的所有关键字。

如果我的查询已经Select [key] from table1,我应该忽略并避免替换它:

var pattern = @"(?i)Key|IN|ON|VIEW";
var subject = "Select key from table1";
var result = Regex.Replace(subject, pattern, @"[$0]");

如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以使用前瞻功能忽略围绕关键字的匹配[]

var pattern = @"(?i)(?<!\[)(?:Key|IN|ON|VIEW)(?!\])";

RegEx Demo