C#Regex仅在字符串外部替换标签

我有一个字符串,代表xml的一部分。

string text ="word fooanother word " 

我需要替换此字符串中的特定单词。 所以我使用了这段代码:

 Regex regex = new Regex("\\b" + co + "\\b", RegexOptions.IgnoreCase); return regex.Replace(text, new MatchEvaluator(subZvyrazniStr)); static string subZvyrazniStr(Match m) { return "" + m.ToString() + ""; } 

但我的代码的问题是,它还替换了我不想要的字符串内部标签。 那么我应该添加什么来替换标签之外的单词呢?

例如:当我将变量co设置为“foo”时,我想返回"word fooanother word"

谢谢

在某些情况下,如果你不那么挑剔,这样的简单伎俩就足够了:

 \bfoo\b(?![^<>]*>) 

这就是你想要的

 (?) 

在这里工作

我在这里回答了一个相关的问题

试试这个正则表达式:

 Regex r = new Regex(@"\b" + rep + @".*?(?=\<)\b", RegexOptions.IgnoreCase);