2011-09-12 1 views
3

を交換してください。私は数+ 1で各番号を交換するために正規表現を使用したいので、出力は次のようになります。
$1$aaaaa$2$bbbbb$3$cccccc正規表現は、私は例の文字列を次ているすべての機能

私はC#で、この使用して正規表現を行うことができますどのように?
私はすべての番号を見つける方法を知っている:私は一つの値によってそれらすべてを置き換えることができますが、私は正規表現で個別に各番号を交換する方法が分からないregex.Replace(...)では

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(); 

を。

誰でもその方法を知っていますか?

敬具、
マルチン

答えて

9
var result = Regex 
    .Replace(input, @"(?<=\$)\d+(?=\$)", m => (int.Parse(m.Value) + 1).ToString()); 
+3

1印象的!興味のある方は、(?<= ...)と(?=)の最適化の意味についてはこちら(http://msdn.microsoft.com/en-us/library/az24scfc.aspx#grouping_constructs) – bottlenecked

+0

@ボトルネック、ありがとう! :-) –

+0

ニース、ありがとう:) – mj82

関連する問題