1

我有很多文本行,我必须找到一些行并更改它们。

我写了这样的正则表达式规则:

^(Position) ([0-9]+)$

例如,我必须找到所有这样的行:

位置 10
位置 11
位置 12

现在我必须将数字增加到 5。我怎样才能通过正则表达式来做到这一点?我尝试编写这样的正则表达式规则:

$1 {$2+ 5}

我需要得到结果:

位置 15
位置 16
位置 17

但我有:

位置 {10 +5}
位置 {11+5}
位置 {12+5}

4

2 回答 2

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); };
于 2012-10-19T12:59:02.333 回答
1
string input = @"Position 10";
string output = Regex.Replace(input, "^Position ([0-9]+)$", match => "Position " + Int32.Parse(match.Groups[1].Value) + 5);
于 2012-10-19T13:00:45.757 回答