有效替换字符串中的文本

时间:2016-10-04 13:19:27

标签: c# regex

我有一个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

如何有效替换以便其他字符串不会被取消

1 个答案:

答案 0 :(得分:3)

您可以使用基于正则表达式的替换:

var res = Regex.Replace(str, @"(?<!\.)\b2\b(?!\.)", "2UL");

请参阅regex demo

详细

  • (?<!\.) - 需要在当前位置之前缺少.的负面背后隐藏
  • \b - 领先的单词边界
  • 2 - 您的价值
  • \b - 尾随字边界
  • (?!\.) - 负面预测,需要在当前位置后忽略.