c#中如何删除字符串中的子串
例如:
“a:b:(k:j;k)jile"
如何删除(k:j;k),它是可变的

解决方案 »

  1.   

    string src="a:b:(k:j;k)jile";
    string del="(k:j;k)";src.Replace(del,"");
      

  2.   

    string del="(k:j;k)"; 
    del内容不是固定的
      

  3.   

    在替换的时候应该是知道的啊,符值就行~string src="a:b:(k:j;k)jile"; 
    string del="(k:j;k)"; src.Replace(del," ");好象要加空格然后再trim()
      

  4.   

    try...string test = "a:b:(k:j;k)jile" ;
    string result = System.Text.RegularExpressions.Regex.Replace(test, @"\([^()]*\)", "");
      

  5.   


    直接src.Replace(del,"");就可以,不用空格,我用过这种方式。
      

  6.   

    如果前面,中间,都是固定的话,可以判断长度,然后substring...
      

  7.   


    string oldStr="a:b:(k:j;k)jile";
    //按"("拆分
    string []Strs=oldStr.Split(new String[]{"("},StringSplitOptions.None);
    //获得 a:b:
    string newStr=Strs[0];
    //按")"拆分
    string []Strs2=Strs.Split(new String[]{")"},StringSplitOptions.None);
    //获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果newStr+=Strs2[2];
      

  8.   

    路过. 就楼主 说的.括号中,是可变的字符串 xxx:(J;K;L);(;):xxx
    个人觉得 11楼的好
      

  9.   


    string src = "a:b:(k:j;k)jile";
    string src = "a:b:(k:j;k)jile";
    try
    {
        int lIndex = src.IndexOf('(');
        int rIndex = src.IndexOf(')');
        string sub = src.Substring(lIndex, (rIndex - lIndex + 1));
        src = src.Replace(sub, string.Empty);
    }
    catch
    {
        //todo...
    }
      

  10.   


    11楼的有错误哈
     string oldStr = "a:b:(k:j;k)jile";
                //按"("拆分
                string[] Strs = oldStr.Split(new String[] { "(" }, StringSplitOptions.None);
                //获得 a:b:
                string newStr = Strs[0];
                Console.WriteLine(Strs[1]);
                //按")"拆分
                string[] Strs2 = Strs[1].Split(new String[] { ")" }, StringSplitOptions.None);
                //获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果
                //Console.WriteLine(Strs2[1]);
                newStr += Strs2[1];
    这样才是正确的。
      

  11.   


    这个方法正解,简单明了, 楼上的看清楚LZ问的是可变子串 所以直接用src.Replace(del,"");不行
      

  12.   


    //上次没编译 写的急了点 抱歉啊string oldStr="a:b:(k:j;k)jile";
    //按"("拆分
    string []Strs=oldStr.Split(new String[]{"("},StringSplitOptions.None);
    //获得 a:b:
    string newStr=Strs[0];
    //按")"拆分
    string []Strs2=Strs[1].Split(new String[]{")"},StringSplitOptions.None);
    //获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果newStr+=Strs2[1];
      

  13.   

    public static void Main(string[] args)
        {     
          string text="a:b:(k:j;k)jile"
          string pattern= @"\([^()]*\)";//匹配截取字符串的模式
          MatchCollection mc=Regex.Matches(text,pattern);//满足pattern的匹配集合
          Console.WriteLine("文本中包含的指定字符串有:");
          foreach(Match match in mc)
          {
            Console.WriteLine(match.ToString());
          }
          Console.Read();
        }
      

  14.   

                string str = "a:b:(k:sdfsdfj;kddsfsdfasdf)jile";
                string result = System.Text.RegularExpressions.Regex.Replace(str, @"\(.*\)", "");
                Console.WriteLine(result);
      

  15.   

    你知道要换的内容,把要替换的内容赋值给 del 就可以了。
    如果你不知道要替换的内容,那么你至少应该知道要替换掉的内容的 src 中的具体位置,那么就采用下面的方法,取得位置,拆分再组合。
      

  16.   

    不论是replace还是拼接字符串,原理应该是一样的。
      

  17.   


    这个简单的问题.2楼高效率解决了!这个年代民风不好!
    string src=String.Format("a:b:{0}jile",变量A); 
    string del = 变量A;
    src.Replace(del,"");
      

  18.   


    string src=String.Format("a:b:{0}jile",变量A); 
    string del = 变量A;
    src.Replace(del,"");这个好
      

  19.   

    看了1楼的回答,又看了2楼楼主的追问,真想直接告诉楼主“你直接 Del ××× 完了”
    楼主自己要好好学习!!!
      

  20.   

    [C# CODE]
    string src="a:b:(k:j;k)jile"; 
    string del=src.subString(indexOf('('),lastIndexOf(')'));
    src.Replace(del,"");
    [/CODE]要先用subString把不定的字符串求出来。
      

  21.   

    string test = "a:b:(k:j;k)jile";
                int x = test.LastIndexOf("(");
                int y=test.LastIndexOf(")");
                string str = test.Replace(test.Substring(x, y-x+1), "");
                Console.WriteLine(str);