要提取的页面源码如下  
<input type="hidden" name="openid.pape.max_auth_age" value="ape:MA==" />
 
<input type="hidden" name="openid.ns" value="ape:aHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLj=A" />
 
<input type="hidden" name="openid.ns.pape" value="ape:aHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvZXh0ZW5zaW9ucy9wYXBlLzEuMA==" />
 
<input type="hidden" name="pageId" value="ape:dXNmbGV4" />  
<input type="hidden" name="openid.identity" value="ape:aHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjAvaWRlbnRpZmllcl9zZWxlY3Q=" />
 
<input type="hidden" name="openid.claimed_id" value="ape:aHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjAvaWRlbnRpZmllcl9zZWxlY3Q=" />
 
<input type="hidden" name="openid.mode" value="ape:Y2hlY2tpZF9zZXR1cA==" />
 
<input type="hidden" name="openid.assoc_handle" value="ape:dXNmbGV4" />
 
<input type="hidden" name="openid.return_to" value="ape:aHR0cHM6Ly93d3cuYW1hem9uLmNvbS9ncC9jc3MvaGlzdG9yeS9vcmRlcnMvdmlldy5odG1sP2llPVVURjgmcmVmXz15YV9fb3JkZXJzX25vYXV0aA==" />

  <div id="ap_signin1a_pagelet" class="ap_table ap_pagelet">    
    <div id="ap_signin1a_pagelet_title" class="ap_row ap_pagelet_title">
      <h1>Sign In</h1>    </div>
如上红色部分为我想要提出出来的内容, 我使用的正则表达式是  (?i)(?<=openid.ns" value=").*(?=" />)
但得不到想要的结果,求大牛帮忙改进下,给出正确的答案!

解决方案 »

  1.   

                string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312"));
                Regex reg = new Regex(@"(?is)<input[^>]*?name=""openid\.ns""[^>]*?value=""([^""]+)""[^>]*?>");
                foreach (Match m in reg.Matches(str))
                    Console.WriteLine(m.Groups[1].Value);
    //ape:aHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLj=A
      

  2.   

    (?i)(?<=openid.ns" value=(['"])).*?(?=\1 />)你的正则除了不应该使用贪婪匹配外,没什么问题哇