C#使用正則匹配嵌套div里面的內容
用C#采集網頁的內容后,但內容中div一層嵌套一層。
如果直接采集<div>與</div>之間的內容肯定得不到我們想要的內容。
所以要獲取嵌套div之間的內容才可以,也是從當前<div>開始到對應的</div>結束。
下面介紹一下使用C#使用正則匹配嵌套div里面的內容,以下函數是獲取<div id="content"></div>之間的匹配嵌套div中的內容,也可以修改相應的地方,獲取<div class="content1"></div>之間的內容
private string getRegHtml(string s2)
{
string result = "";
string reg = @"<(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>[""']?)content(?(Quote)\k<Quote>)[""']?[^>]*>(((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*)</\k<HtmlTag>>";
MatchCollection m = Regex.Matches(s2,reg,RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);
foreach (Match sub_m in m)
{
result = sub_m.Groups[1].Value;
}
return result;
}
如果直接采集<div>與</div>之間的內容肯定得不到我們想要的內容。
所以要獲取嵌套div之間的內容才可以,也是從當前<div>開始到對應的</div>結束。
下面介紹一下使用C#使用正則匹配嵌套div里面的內容,以下函數是獲取<div id="content"></div>之間的匹配嵌套div中的內容,也可以修改相應的地方,獲取<div class="content1"></div>之間的內容
private string getRegHtml(string s2)
{
string result = "";
string reg = @"<(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>[""']?)content(?(Quote)\k<Quote>)[""']?[^>]*>(((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*)</\k<HtmlTag>>";
MatchCollection m = Regex.Matches(s2,reg,RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);
foreach (Match sub_m in m)
{
result = sub_m.Groups[1].Value;
}
return result;
}
中國· 上海

添加微信咨詢
CopyRight?2009-2019 上海谷谷網絡科技有限公司 All Rights Reserved. 滬ICP備11022482號-8
- top
- 在線咨詢
-
添加微信咨詢