我目前正在对这样的字符串运行一个简单的查找和替换:
1. User.Name "John"
2. User.Age 20
3. Name.Length 5
但是,尝试将Name
替换为WHATEVER
会产生以下结果:
1. User.WHATEVER "John"
2. User.Age 20
3. WHATEVER.Length 5
我需要更改第3行,但不能更改第1行。如何检查当前单词是否在点(.
)之后并跳过替换该单词?
我在.NET 4.0中,我的正则表达式目前看起来像这样:
result = new Regex(@"\b" + oldWord + @"\b").Replace(text, newWord);
答案 0 :(得分:3)
您可以在.
上使用negative lookbehind:(?<!\.)
这给出了:
result = new Regex(@"\b(?<!\.)" + oldWord + @"\b").Replace(text, newWord);