如textbox1内容为[a1=zza][b1=c][c1=ddddw]eeee[/c1][/b1][/a1]要获取的内容是: [a1=zza]的内容【zza】,并输出到textbox2中;和[c1=ddddw]后面的内容【eee】输出到textbox3中;求大神 解决~~~ 【那些都是变量】

解决方案 »

  1.   

    string s = "[a1=zza][b1=c][c1=ddddw]eeee[/c1][/b1][/a1]";
    var m = System.Text.RegularExpressions.Regex.Match(s, @"\[a1\=([^\]]+).+?\[c1\=[^\]]+\]([^\[]+)\[\/c1\]");
    string s1 = m.Groups[1].Value; //zza
    string s2 = m.Groups[2].Value; //eeee
      

  2.   

    textbox1的内容是像这样的多行的[a1=zza][b1=c][c1=ddddw]eeee[/c1][/b1][/a1]
      

  3.   

    本帖最后由 caozhy 于 2013-10-12 22:46:40 编辑
      

  4.   

    textBox2.Text = string.Join("\r\n", textBox1.Lines.Select(s => 
    {
    var m = System.Text.RegularExpressions.Regex.Match(s, @"\[a1\=([^\]]+).+?\[c1\=[^\]]+\]([^\[]+)\[\/c1\]");
    return m.Groups[1].Value; //zza
    }).ToArray());另外一个类似。像多行下面内容的 怎么整 我替换上面的代码 没整出来  呜呜呜~~
    [wqe=http://bdfbfd][cdfd=asad][swzes=14et][gfrg]gsdgdsfg[/gfrg][/swzes][/cdfd][/wqe]
      

  5.   

            string str = @"[a1=zza][b1=c][c1=ddddw]eeee[/c1][/b1][/a1]";        Regex r1 = new Regex(@"\](?<value>[^\[|\]]+)\[");
            string strValue = r1.Match(str).Groups["value"].Value;        Console.WriteLine("Value:{0}", string.IsNullOrEmpty(strValue) ? "null" : strValue);
            str = r1.Replace(str, "][");        Regex r2 = new Regex(@"\[(?<tag>[^\[|\]]+)=(?<attr>[^\[|\]]+)\][^\[|\]]{0,}\[/[^\[|\]]+\]");        List<string> lstTag = new List<string>();
            List<string> lstAttr = new List<string>();        Match m = r2.Match(str);
            while (!string.IsNullOrEmpty(m.Value))
            {
                lstTag.Add(m.Groups["tag"].Value);
                lstAttr.Add(m.Groups["attr"].Value);            str = r2.Replace(str, "");
                m = r2.Match(str);
            }        for (int i = 0; i < lstTag.Count; i++)
            {
                Console.WriteLine("Tag:{0}\tAttr:{1}", string.IsNullOrEmpty(lstTag[i]) ? "null" : lstTag[i],
                    string.IsNullOrEmpty(lstAttr[i]) ? "null" : lstAttr[i]);
            }        Console.ReadKey();
      

  6.   

    如textbox1像下面多行的内容[wqe=http://www.bdfbfd.com][cdfd=asad][swzes=14et][gfrg]opskeid[/gfrg][/swzes][/cdfd][/wqe]要获取的内容是:[wqe=http://bdfbfd]的内容【http://www.bdfbfd.com】,并输出到textbox2中;和[gfrg]后面的内容【opskeid】输出到textbox3中;