C#中使用Regex提取超連結位址的集中方法

來源:互聯網
上載者:User

標籤:

 

一般在做爬蟲或者CMS的時候經常需要提取 href連結或者是src地址。此時可以使用Regex輕鬆完成。Regex reg = new Regex(@"(?is)<a[^>]*?href=([‘""]?)(?<url>[^‘""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");            MatchCollection mc = reg.Matches(yourStr);            foreach (Match m in mc)            {                  richTextBox2.Text += m.Groups["url"].Value + "\n";//得到href值                  richTextBox2.Text += m.Groups["text"].Value + "\n";//得到<a><a/>中間的內容              } 方法2: <PRE class="brush: c-sharp;">Regex r;        Match m;          r = new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))",            RegexOptions.IgnoreCase|RegexOptions.Compiled);       for (m = r.Match(inputString); m.Success; m = m.NextMatch())        {             Console.WriteLine("Found href " + m.Groups[1] + " at " + m.Groups[1].Index);}</PRE>方法3:提取img src的 <PRE class="brush: c-sharp;">Regex reg = new Regex(@"(?i)<img[^>]*?\ssrc\s*=\s*([‘""]?)(?<src>[^‘""\s>]+)\1[^>]*>");   MatchCollection mc = reg.Matches(yourStr);   foreach (Match m in mc)    {    Console.Write(m.Groups["src"].Value + "\n");   } </PRE> 方法4: 提取img src  <PRE class="brush: c-sharp;">  /// <summary>          /// 擷取Img的路徑          /// </summary>          /// <param name="htmlText">Html字串文本</param>         /// <returns>以數組形式返回圖片路徑</returns>           public static string[] GetHtmlImageUrlList(string htmlText)        {            Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""‘]?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""‘<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);   //建立一個matches的MatchCollection對象 儲存 匹配對象個數(img標籤)   MatchCollection matches = regImg.Matches(htmlText);   int i = 0;              string[] sUrlList = new string[matches.Count];   //遍曆所有的img標籤對象              foreach (Match match in matches)    {                    //擷取所有Img的路徑src,並儲存到數組中    sUrlList[i++] = match.Groups["imgUrl"].Value;             }                 return sUrlList;       }</PRE> 

 

C#中使用Regex提取超連結位址的集中方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.