我有很多文本行,我必须找到一些行并更改它们。
我写了这样的正则表达式规则:
^(Position) ([0-9]+)$
例如,我必须找到所有这样的行:
位置 10
位置 11
位置 12
现在我必须将数字增加到 5。我怎样才能通过正则表达式来做到这一点?我尝试编写这样的正则表达式规则:
$1 {$2+ 5}
我需要得到结果:
位置 15
位置 16
位置 17
但我有:
位置 {10 +5}
位置 {11+5}
位置 {12+5}
Regex Replace 函数采用字符串或函数。您使用了字符串替换,因此只插入了字符串。如果要进行整数运算,则需要使用函数替换方法。
http://msdn.microsoft.com/library/cft8645c(v=vs.80).aspx
这段代码不正确,它应该只是显示如何完成它
Regex.Replace("^(Position) ([0-9]+)$", ReplaceFunction);
public string ReplaceFunction(Match m) { return "Position " + (int.Parse(m.Groups[2].Value) + 5); };
string input = @"Position 10";
string output = Regex.Replace(input, "^Position ([0-9]+)$", match => "Position " + Int32.Parse(match.Groups[1].Value) + 5);