标签: c# regex regex-negation
我有一个查询,其中我用方括号中的关键字替换模式中指定的所有关键字。
如果我的查询已经Select [key] from table1,我应该忽略并避免替换它:
Select [key] from table1
var pattern = @"(?i)Key|IN|ON|VIEW"; var subject = "Select key from table1"; var result = Regex.Replace(subject, pattern, @"[$0]");
如何实现这一目标?
答案 0 :(得分:2)
您可以使用前瞻功能忽略围绕关键字的匹配[和]:
[
]
var pattern = @"(?i)(?<!\[)(?:Key|IN|ON|VIEW)(?!\])";