1 回答
TA贡献1883条经验 获得超3个赞
您可以减少匹配评估器中的数字:
var text = "A, something happened [1], something else [2], whatever [3]";
var result = Regex.Replace(text, @"\[(\d+)\]", m => $"{{{int.Parse(m.Groups[1].Value)-1}}}");
Console.Write(result); // => A, something happened {0}, something else {1}, whatever {2}
查看C# 演示
如果无法将数字转换为 int use int.TryParse:
var result = Regex.Replace(text, @"\[(\d+)\]", m =>
int.TryParse(m.Groups[1].Value, out var number) ? $"{{{number - 1}}}" : m.Value);
对于 C#7 之前的 C#:
var result = Regex.Replace(text, @"\[(\d+)\]", m => {
int number;
if (int.TryParse(m.Groups[1].Value, out number))
{
return $"{{{number-1}}}";
}
else
{
return m.Value;
}
});
- 1 回答
- 0 关注
- 79 浏览
添加回答
举报