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);