正则表达式替换所有功能

mj8*_*j82 3 .net c# regex

我有以下示例字符串:
$0$aaaaa$1$bbbbb$2$cccccc
美元标记之间有一些数字.我想用Regex用数字+ 1替换每个数字,所以输出应该是:
$1$aaaaa$2$bbbbb$3$cccccc

如何在C#中使用Regex?
我知道如何找到所有数字:

string s = "$0$aaaaa$1$bbbbb$2$cccccc";
Regex regex = new Regex(@"\$(?<myNumber>.*?)\$");

MatchCollection matches = regex.Matches(s);

foreach (Match match in matches)
{
    Console.WriteLine(match.Groups["myNumber"]);
}

Console.WriteLine("\n\nFinal string = " + s);
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

通过regex.Replace(...)我可以用一个值来替换他们,但我不知道如何使用正则表达式逐个更换号码.

有谁知道这是怎么做到的吗?

最好的问候,
Marcin

Kir*_*huk 9

var result = Regex
    .Replace(input, @"(?<=\$)\d+(?=\$)", m => (int.Parse(m.Value) + 1).ToString());
Run Code Online (Sandbox Code Playgroud)

  • +1印象深刻!对于任何有兴趣的人,更多关于(?<= ...)和(?=)优化意味着什么[这里](http://msdn.microsoft.com/en-us/library/az24scfc.aspx#grouping_constructs) (3认同)