1."q=[^>]*>(?<value>.*?)(?=</a></td></tr></table>)"
2."大小:(?:<[^>]*>)*(?<value>[^<]+)"

解决方案 »

  1.   

    应该没问题,你的代码?
      
    *****************************************************************************
    http://feiyun0112.cnblogs.com/
      

  2.   

    (?is)(?<=q=[^"]+">).*?(?=</a></td></tr></table>)
      

  3.   

    这个适用于你的两种情况:(?i)(?<=>)[^<>]*?(?=</(a|span)></td>)
      

  4.   

    根本就不行,C#什么支持中文了,我测试的时候结果根本为空
    把你测试代码贴出来,看看
    抱歉,搞错了,你提取的多了点,应该是(?<=大小:(?:<[^>]*>)*)(?<value>[^<]+)
    大神,但是那个value到底是什么意思啊?我怎么没见过
    还有(?<pattern)(?:pattern)(?<=pattern)有什么区别啊
      

  5.   

    1.命名捕获组语法:(?<name>Expression)   (?’name’Expression)以上两种写法在.NET中是等价的,都是将“Expression”子表达式匹配到的内容,保存到以“name”命名的组里,以供后续引用。
    2.非捕获组一些表达式中,不得不使用( ),但又不需要保存( )中子表达式匹配的内容,这时可以用非捕获组来抵消使用( )带来的副作用。
    (?:Expression)
    进行子表达式Expression的匹配,并将匹配内容保存到最终的整个表达式的区配结果中,但Expression匹配的内容不单独保存到一个组内
    3.环视(Look Around)环视只进行子表达式的匹配,匹配内容不计入最终的匹配结果,是零宽度的。(?<=Expression)

    逆序肯定环视,表示所在位置左侧能够匹配Expression
      

  6.   

    前面那位大神的的确可以,请问大神,()里面到底能有写什么
    如果我要匹配一个字符串"?<=XXX",regex写成什么样子呢?
      

  7.   

    (?<value>pattern)
    捕获组,value为组名,取值的时候用groups["value"]即可
      

  8.   

    Regex reg = new Regex(@"(?<=大小:(<[^>]+>)+)[^<]+(?=<[^>]+>)");
    Regex r2 = new Regex(@"(?<=q=.*"">).*(?=</a></td></tr></table>)");