在vs2008中string a = "中国|zg,法国|fg,美国|mg"
string b = "zb,fg";根据 b字符串在a字符串中得到,返回结果是string c = "中国,法国";

解决方案 »

  1.   

    private void button1_Click(object sender, EventArgs e)
    {
        string a = "中国|zg,法国|fg,美国|mg";
        string b = "zg,fg";
        Match m = Regex.Match(a, @"(?n)\w+(?=\|(" + b.Replace(',', '|') + "))");
        while (m.Success)
        {
            MessageBox.Show(m.Value);
            m = m.NextMatch();
        }
    }
      

  2.   

    string a = "中国|zg,法国|fg,美国|mg"
    string b = "zb,fg";
    a中没有zb啊!
      

  3.   


                string a = "中国|zg,法国|fg,美国|mg";
                string b = "zg,fg";            String[] arrA = a.Split(',');
                String[] arrB = b.Split(',');
                String res = "";
                for (Int32 i = 0; i < arrB.Length; i++)
                {
                    for (Int32 j = 0; j < arrA.Length; j++)
                    {
                        if (arrA[j].IndexOf(arrB[i]) > -1)
                        {
                            res += arrA[j].Substring(0,arrA[j].IndexOf('|')) + ",";
                        }
                    }
                }
                res = res.Trim(',');            Console.WriteLine(res);
      

  4.   

    string a = "中国|zg,法国|fg,美国|mg";
    string b = "zg,fg";
    string[] c=a.split(',');
    string re="";
    string[] d=b.split(',');
    foreach(string x in c)
    {
        for(int i=0;i<d.count;i++)
        {
             if(d[i]==x.subString(2,2))
              {
                 re=re+x
               }
        }
    }
    return re;
      

  5.   

    正则这东西不是很好理解
    虽然他很强
    是我的话也是split处理字符串了