C# 有效地替换字符串中的文本

C# 有效地替换字符串中的文本,c#,regex,C#,Regex,我有一根c#弦 我需要用2UL替换常数2,但问题是替换方法用2UL替换所有2,例如,它这样替换 ((65.2long5 - 2long6.35)*42long0000)^2long ((65.25 - 26.35)*420000)^2long 我需要这样的结果 ((65.2long5 - 2long6.35)*42long0000)^2long ((65.25 - 26.35)*420000)^2long 如何有效地替换,以使其他字符串不被分发您可以使用基于正则表达式的替换: var

我有一根c#弦

我需要用2UL替换常数2,但问题是替换方法用2UL替换所有2,例如,它这样替换

((65.2long5 - 2long6.35)*42long0000)^2long
 ((65.25 - 26.35)*420000)^2long
我需要这样的结果

((65.2long5 - 2long6.35)*42long0000)^2long
 ((65.25 - 26.35)*420000)^2long

如何有效地替换,以使其他字符串不被分发

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

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

var res=Regex.Replace(str,@)(?您可以使用基于Regex的替换:

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

var res=Regex.Replace(str,@)(?如果总是这样,你可以用“^2long”替换“^2”,但我认为更好的解决方案是有人发布的正则表达式作为答案。如果总是这样,你可以用“^2long”替换“^2”Wiktor Stribiże你能告诉我这个字符串SMA(20,V1)>200000和C1200000和C1