2014-05-12 99 views
1

编辑如何用连续实例替换字符串?

@Ulugbek - 我已编辑问题澄清。

我正在使用模式作为分隔符,并且需要通过在使用C#的模式之间插入$来替换连续的模式发生,但目前它仅替换模式的第一个实例。

除了通过替换几次之外,我还需要做其他事吗?或者,我是否需要使用RegEx?

感谢

String s = "ABCThis is a delimited valueABCABCABCAnd another delimited valueABC"; 
String.Replace("ABCABC", "ABC$ABC"); //misses second instance of the consecutive patterns instances 

结果:

ABCThis是分隔valueABC $ ABCABCAnd另一个分隔valueABC

期望的结果:

ABCThis是一家熟食店mited valueABC $ ABC $ ABCAnd另一个分隔valueABC

乌卢格别克解决方案:

ABC $这是一个分隔valueABC $ ABC $ ABC $而另一分隔 valueABC $

感谢

+1

调用在循环中替换,直到结果不再改变? – helb

+0

如果你计算你的模式的实例,结果是2,那么为什么期望的结果不是'ABC $ ABCABC $ ABC'? – TaW

回答

5

您可以重新思考该策略。将全部ABC s替换为ABCABC$

string s = "ABCABCABC"; 
string output = Regex.Replace(s, "ABC(?=ABC)", "ABC$"); 
+0

我喜欢你的解决方案。不幸的是,它不会工作。 – user2732180

+0

@ user2732180你能提供更多细节为什么它不起作用吗? –

+0

请参阅问题中的编辑。 – user2732180