在一个页面中有很多{$_Type:abc;Num:3;}这种格式的东西
怎么获取到?

解决方案 »

  1.   

    {$_Type:参数1;Num:参数2;}
    都是这种形式的
      

  2.   


    private void button1_Click(object sender, EventArgs e)
            {
                string yourStr = @"{$_Type:参数1;Num:参数2;}
    test line text
    {testpar:参数3;Char:参数4;}";
                MatchCollection lines = Regex.Matches(yourStr, "{[^{}]+}");
                foreach (Match line in lines)
                {
                    MatchCollection mc = Regex.Matches(line.Value, "(?<=[{;])(?<name>[^:]+):(?<value>[^:;}]+)(?=[;}])");
                    foreach (Match m in mc)
                    {
                        MessageBox.Show("name\tvalue" + Environment.NewLine +
                            m.Groups["name"].Value + "\t" + m.Groups["value"].Value);
                    }
                }            
            }
      

  3.   

    抱歉
    我没有敷衍的意思  我有测试的
    我是在一个页面里面有很多{$_Type:参数1;Num:参数2;}这种格式的
    然后我想获取到这整个句或者里面的参数放进数组
      

  4.   

    你为什么这么吝啬贴出例子呢?就你贴的这个{$_Type:参数1;Num:参数2;}我给你的正则无法获取到你要的内容么?你要的是什么格式。你不能写个例子么?你想要什么,你没有表达清楚。我说的你明白了么?
    比如:
    看看人家发的帖子。
    http://topic.csdn.net/u/20100331/09/4de14398-d4a4-4979-9244-3418d13579ca.html
      

  5.   

    先说下你的参数都是什么吧
    这样才好匹配.而且 {$_Type:参数1;Num:参数2;} 是一次匹配两个,放入一个二维数组,还是一个一个放入一个一维数组?
      

  6.   

    呃。。我语言组织能力不是很好。。
    我以为这就是例子了
    拿这个说吧{$_Type:head_news;Num:3;}
    Type后面的是我要调用的方法名  Num后面的是参数 
    但是这些是写在前台页面的 我想获取它们然后在后台使用
    这些就是写在body中间的
    把所有{$_Type:head_news;Num:3;}都放进一个数组里面
      

  7.   

    方法名是string的 参数是int类型的
      

  8.   

    最后回复一次public void testRegex04()
            {
                string yourStr = @"{$_Type:head_news;Num:3;}
    我实在不知道你遇到的文本长什么样,只好自己随便加点文字表示一下了。是这个样子么?你不能吧整个网页贴出来么?或是贴网址
    {testpar:head_bbs;Char:4;}";
                MatchCollection lines = Regex.Matches(yourStr, "{[^{}]+}");
                foreach (Match line in lines)
                {
                    MatchCollection mc = Regex.Matches(line.Value, "(?<=[{;])(?<name>[^:]+):(?<value>[^:;}]+)(?=[;}])");
                    foreach (Match m in mc)
                    {
                        //新手楼主,m.Groups["value"].Value就是你要的内容,你爱转什么格式随便你自己,正则返回的是字符串,
                        //如果要int就转int,其他就其他,int vn = int.Parse(m.Groups["value"].Value);
                        MessageBox.Show("name\tvalue" + Environment.NewLine +
                            m.Groups["name"].Value + "\t" + m.Groups["value"].Value);
                    }
                }
    再看不懂就让其他高人点化你好了。我手钝。