将strOld中的数字1替换成A
strOld=1,2,1,13,112,11,1
替换后的结果:
strNew=A,2,A,13,112,11,A请问:
①在C#中用Regex.Replace该如何实现?
②在SQL中该如何实现?

解决方案 »

  1.   


    SQL:
    UPDATE [News] SET [KeyWord]=REPLACE(]KeyWord],'1','A')
      

  2.   

    (1).C#里用Linq
     string strOld = "1,2,1,13,112,11,1";
     string strNew = strOld.Split(',').Select(x => x == "1" ? "A" : x).Aggregate((x, y) => y = x + "," + y);(2).SQL里用Replace
    strOld=Replace(','+strOld+',' , ',A,')
    strNew=RIGHT(LEFT(strOld,LEN(strOld)-1),LEN(strOld)-2)
              
      

  3.   

    C# 
    strOld="1,2,1,13,112,11,1";
    strOld=Regex.Replace(strOld,@"(?<=(,|\s|^))1(?=,|$","A");
      

  4.   

               string strOld = "1,2,1,13,112,11,1";           Response.Write( ("," + strOld + ",").Replace(",1,", ",A,").TrimStart(',').TrimEnd(','));
    给分吧
      

  5.   

    strOld=Replace(','+strOld+',' , ',1,1',  ',A,') --上面少些了一个参数
    strNew=RIGHT(LEFT(strOld,LEN(strOld)-1),LEN(strOld)-2)
      

  6.   

    SQL的少写了个参数
    strOld=Replace(','+strOld+',' , ',1,',  ',A,') --上面少些了一个参数
      

  7.   

     string strOld = "1,2,1,13,112,11,1";
                string strNew = Regex.Replace(strOld, @"(?<=,|^)1(?=,|$)", "A");declare @str varchar(100)
    set @str='1,2,1,13,112,11,1'
    select left(stuff(replace(','+@str+',',',1,',',A,'),1,1,''),len(stuff(replace(','+@str+',',',1,',',A,'),1,1,''))-1)