不知道说的对不对,这个是成对出现的,所以先获得数字那部分,之后在获得aaa那部分
数字:(?is)(?<=<!--start_customized_code_)\d+
字母:(?is)(?<=<!--start_customized_code_[0-9]+-->).*(?=<!--end_customized_code)

解决方案 »

  1.   


    用类似如下的写法(只是举例,下面的语句只参考型式,内容并不相同),该怎么写啊
            var list = Regex.Matches(str1, @"(?is)ST_+(?=[^>]*?pid\-(?<pid>[^&_]+))(?=[^>]*?sid\-(?<sid>[^&_]+))(?=[^>]*?innername\-(?<innername>[^&]+))(?=[^>]*?format\-(?<format>[^&_]+)).*?_+ST")
    .OfType<Match>().Select(t => new { all = t.Groups[0].Value, pid = t.Groups["pid"].Value, sid = t.Groups["sid"].Value, innername = t.Groups["innername"].Value.Replace("___ST", ""), format = t.Groups["format"].Value }).ToList();
            foreach (var obj in list)
            {
                Response.Write("pid:" + obj.pid + " sid:" + obj.sid + " innername:" + obj.innername + " format:" + obj.format + " all:" + obj.all + "<br />");
            }
      

  2.   


    我改造成下面这样,能输出一些值,但有问题
    object list = Regex.Matches(Str, "(?is)(?<=<!--start_customized_code_[0-9]+-->).*(?=<!--end_customized_code)").OfType<Match>().Select(t => new {
    num = t.Groups(0).Value,
    value = t.Groups(1).Value
    }).ToList();
    foreach (object obj in list) {
    Response.Write("num:" + obj.num + " value:" + obj.value + "<br />");
    }
      

  3.   


    现在改造后,能工作,但是有2个问题
    object list = Regex.Matches(Str, "(?is)(?<=<!--start_customized_code_[0-9]+-->).*(?=<!--end_customized_code)").OfType<Match>().Select(t => new {
    num = t.Groups(0).Value,
    value = t.Groups(1).Value
    }).ToList();
    foreach (object obj in list) {
    Response.Write("num:" + obj.num + " value:" + obj.value + "<br />");
    }
    一是:你的两个正则怎么合成一个,同时得到key和value
    二是:  <!--------------------------------------------->...<!----------------------------------------------> 这样的形式,怎么也取到的了值,我只需要按我那个规范取得值就行了,上面那种形式不应该获取得到值啊,并且现在获取的值也有问题,输出后看到好像全在第一个num中了,集合中应该有几个key和值,还不是一个,估计后面的正则写的有问题,用第一个获取数字的正则,倒是没问题,输出的是对的,但是现在需要2个合成一成,而且需要一一对应正确的关系
      

  4.   

    如果都是1,2,3这么顺序的,其实就不用正则这么强大的工具了,直接用 indexof 就解决了
      

  5.   

    (?is)<!--(.*?)-->(.*?)<!--end_customized_code_\d+-->  遍历匹配结果,每次遍历组1是key,组2是value
      

  6.   


    这个已经差不多获取到了,就是多了一个不应该的key和value
     <!--------------------------------------------->...<!----------------------------------------------> 这样的形式
    的形式也获取到了啊