[英]How to extract a tag link using regular expression (REGEX - C#)
到目前為止,我有:
<a href="(http://www.imdb.com/title/tt\d{7}/)".*?>.*?</a>
C#
ArrayList imdbUrls = matchAll(@"<a href=""(http://www.imdb.com/title/tt\d{7}/)"".*?>.*?</a>", html);
private ArrayList matchAll(string regex, string html, int i = 0)
{
ArrayList list = new ArrayList();
foreach (Match m in new Regex(regex, RegexOptions.Multiline).Matches(html))
list.Add(m.Groups[i].Value.Trim());
return list;
}
我正在嘗試從HTML頁面提取imdb鏈接,此regex表達式有什么問題?
其主要思想是在Google中搜索電影,然后在結果中查找指向imdb的鏈接
正則表達式不是解析HTML文件的好選擇.HTML既不嚴格也不規范其格式。
使用htmlagilitypack 。您可以使用此代碼通過HtmlAgilityPack
進行檢索
HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);
List<string> anchorImdbList = doc.DocumentNode.SelectNodes("//a[@href]")//this xpath selects all anchor tags
.Select(p => p.Attributes["href"].Value)
.Where(x=>Regex.IsMatch(x,@".*?www\.imdb\.com.*?"))
.Select(y=>y)
.ToList<string>();
嘗試這個 :
string tag = "tag of the link";
string emptystring = Regex.Replace(tag, "<.*?>", string.Empty);
更新:
string emptystring = Regex.Replace(tag, @"<[^>]*>", string.Empty);
您必須轉義正斜杠。 嘗試:
<a href="(http:\/\/www.imdb.com\/title\/tt\d{7}\/)".*?>.*?<\/a>
如果您需要從復雜的頁面中解析html元素,則正則表達式將非常麻煩。 按照其他人的建議嘗試Html Agility Pack 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.