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 関数は、文字列または関数のいずれかを取ります。文字列の置換を使用したため、文字列だけが挿入されます。整数演算が必要な場合は、replace with function メソッドを使用する必要があります。

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 に答える