希望能匹配成对出现的<< >>直接之间的内容,里面可以嵌套<< >>,如
<<Type /Page/Parent  3 0 R/Resources >>

<<Type /Page/Parent  3 0 R/Resources << /Font << /F1 7 0 R >>/ProcSet 6 0 R >>/MediaBox [0 0 612 792] /Contents 5 0 R>>

解决方案 »

  1.   

    \<\<(.+)\>\>
    用程序递归吧。
      

  2.   

    同进匹配一个还是多个,<<和>>之间是否有可能出现单独的<或>这个是同时匹配多个的,假设中间不会出现单独的<或>string yourStr = ................;
    MatchCollection mc = Regex.Matches(yourStr, @"<[^<>]*(((?'Tag'<)[^<>>]*)+((?'-Tag'>)[^<>]*)+)*(?(Tag)(?!))>");
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n";
    }
      

  3.   

    <<和>>之间是有可能出现单独的<或> ,但会以\< \>这样的形式出现
    要么就是<>成对出现
      

  4.   

    (^\<\<[\s\S]*>\>$)
      
    ---------------------------------------------
    MSN:[email protected]请给我一个与您交流的机会!
      

  5.   

    <<和>>之间是有可能出现单独的<或> ,但会以\< \>这样的形式出现
    要么就是<>成对出现
    ------------------------------
    如果是这样,那用我上面写的是可以的但是有一点,如果源字符串中可能单独出现<...>这样的,而不是包含在<<...>>内的情况也会被匹配出来,那样的话,真接提取比较困难,可以先把<<和>>替换成特殊字符,然后用上面的方法匹配,匹配之后再重新替换回来
      

  6.   

    <<和>>之间是有可能出现单独的<或> ,但会以\< \>这样的形式出现
    要么就是<>成对出现
    ------------------------------
    如果是这样,那用我上面写的是可以的但是有一点,如果源字符串中可能单独出现<...>这样的,而不是包含在<<...>>内的情况也会被匹配出来,那样的话,真接提取比较困难,可以先把<<和>>替换成特殊字符,然后用上面的方法匹配,匹配之后再重新替换回来
      

  7.   

    to lxcnn(过客)
    你对单独的< >处理的不是很好
    如字符串 <\<\() >>只能匹配到自己写了个((?'Tag'<<)[\s\S]*?(?=(<<)|(>>)))(((?'Tag'<<)[\s\S]*?(?=(<<)|(>>)))|([\s\S]*?(?=(<<)|(>>))(?'-Tag'>>)))*(?(Tag)(?!))
      

  8.   

    to lxcnn(过客)
    你对单独的< >处理的不是很好
    字符串<</Key (\<\<\() >>
    只能匹配到 <\<\() >> 
      

  9.   

    呵呵,理解错误,我以为如果有单独的<>,都是成对出现的,就没有再做处理
      

  10.   

    <>内容有其他意义,里面存放的是16进制的数据\<  \>仅当普通字符处理的"<" ">"不好意思,我没有说清楚