c#如何处理这样的STRING
string   abc= "fdjlsakjfdslk   @a   23423prujfsdjlf@b   23erjdwos@c   435r43 " 
 替换@a   @b   @c   为X   Y   Z   
 要求 
 1参数个数并不规定 
 2参数名称不确定 
 3   只有@确定
------解决方案--------------------//参考如下代码 
 private string ReplaceParam(string AStr, Dictionary <string, string>  AParams) 
 { 
     if (AStr == string.Empty || AStr == null || AParams == null) return AStr; 
     string Result = AStr;       
     foreach (string vKey in AParams.Keys) 
         Result = Result.Replace( "@ " + vKey, AParams[vKey]); 
     return Result; 
 }   
 private void Form1_Load(object sender, EventArgs e) 
 { 
     Dictionary <string, string>  vParams = new Dictionary <string, string> (); 
     vParams.Add( "a ",  "X "); 
     vParams.Add( "b ",  "Y "); 
     vParams.Add( "c ",  "Z ");   
     string abc =  "fdjlsakjfdslk @a 23423prujfsdjlf@b 23erjdwos@c 435r43 "; 
     Text = ReplaceParam(abc, vParams); 
 } 
------解决方案--------------------private string ReplaceSpecified(string line, string[] oldStrings, string[] newStrings) 
         { 
             if (oldStrings.Length == newStrings.Length) 
             { 
                 for (int i = 0; i  < oldStrings.Length; i++) 
                 { 
                     string pattern = @oldStrings[i]; 
                     line = Regex.Replace(line, pattern, newStrings[i]); 
                 } 
             }   
             return line; 
         }     
 string abc =  "fdjlsakjfdslk @a 23423prujfsdjlf@b 23erjdwos@c 435r43 "; 
             abc = ReplaceSpecified(abc, new string[] {  "@a ",  "@b ",  "@c " }, new string[] {  "X ",  "Y ",  "Z " });
------解决方案--------------------你早给结果就是了,这样   
 using System.Text.RegularExpressions;   
 string abc1 =  "fdjlsakjfdslk (@a) 23423prujfsdjlf(@b) 23erjdwos(@w) 435r43 "; 
 string result = Regex.Replace(abc1, @ "@(\w) ", new MatchEvaluator(expreplace));     
 private string expreplace(Match m) 
 { 
      return m.Groups[1].Value.ToUpper(); 
 }   
 输出:fdjlsakjfdslk (A) 23423prujfsdjlf(B) 23erjdwos(W) 435r43