我有以下示例字符串:
$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(...)
我可以用一个值替换它们,但我不知道如何用正则表达式单独替换每个数字。
有谁知道怎么做?
最好的问候,
马尔钦
答案 0 :(得分:9)
var result = Regex
.Replace(input, @"(?<=\$)\d+(?=\$)", m => (int.Parse(m.Value) + 1).ToString());