我有一个c#string
((65.25 - 26.35)*420000)^2
我需要用2UL替换常量2,但问题是替换方法用2 UL替换所有2,例如它替换为这样
((65.2long5 - 2long6.35)*42long0000)^2long
我需要这样的结果
((65.25 - 26.35)*420000)^2long
如何有效替换以便其他字符串不会被取消
答案 0 :(得分:3)
您可以使用基于正则表达式的替换:
var res = Regex.Replace(str, @"(?<!\.)\b2\b(?!\.)", "2UL");
请参阅regex demo
详细:
(?<!\.)
- 需要在当前位置之前缺少.
的负面背后隐藏\b
- 领先的单词边界2
- 您的价值\b
- 尾随字边界(?!\.)
- 负面预测,需要在当前位置后忽略.
。