string的操作可以试下下面的string yourStr = " a1, a2, a3,...a11, a12..."
string resultStr = yourStr;
if (yourStr.IndexOf(",") > -1)
{
    resultStr = " A" + yourStr.Substring(yourStr.IndexOf(","));
}用正则的这样试下string yourStr = " a1, a2, a3,...a11, a12..."
string reStr = "A";
string resultStr = Regex.Replace(yourStr, @"(\s*?)\S+(\s*?,[\s\S]*?$)", @"$1"+reStr+"$2", RegexOptions.IgnoreCase);

解决方案 »

  1.   

    和大小写无关的,我的意思就是替换a1时,把a11,a12的前半部分也当a1了
      

  2.   

    上面两种方法都是只替换了a1,而没有替换a11,a12,都不满足你的要求吗?还是说你的字符串中有多个a1需要替换,如果是,那这样试下
    string yourStr = " a1, a2, a3,...a11, a12..., a1,....,a123,...";
    string resultStr = Regex.Replace(yourStr, @"\ba1\b", @"A");
      

  3.   

    替换掉所有的"a1",而不把a11,a12的前半部分也当a1了替掉
    string result;
                string yourStr = " a1, a2, a3,...a11, a12..., a1,....,a123,...";
                result = yourStr.Replace("a1,", "A,");
    或者            result = Regex.Replace(yourStr, @"\ba1\b", @"A");
    楼上两位的方法都可以实现或者只将第一个出现的a1替换掉int index=yourStr.IndexOf("a1,");
                result = yourStr.Remove(index, "a1".Length).Insert(index, "A");