正则表达式替换所有功能

时间:2011-09-12 07:53:57

标签: c# .net regex

我有以下示例字符串:
$0$aaaaa$1$bbbbb$2$cccccc
美元标记之间有一些数字。我想使用正则表达式将每个数字替换为数字+ 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();

regex.Replace(...)我可以用一个值替换它们,但我不知道如何用正则表达式单独替换每个数字。

有谁知道怎么做?

最好的问候,
马尔钦

1 个答案:

答案 0 :(得分:9)

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