我需要一個正則表達式模式來查找HTML中的網頁鏈接。我首先使用@"(<a.*?>.*?</a>)"提取鏈接(<a>),但無法從中獲取鏈接href。我的字符串是:<a href="www.example.com/page.php?id=xxxx&name=yyyy" ....></a><a href="http://www.example.com/page.php?id=xxxx&name=yyyy" ....></a><a href="https://www.example.com/page.php?id=xxxx&name=yyyy" ....></a><a href="www.example.com/page.php/404" ....></a>1,2和3是有效的,我需要他們,但4號是無效的,我(?和=是必不可少的)謝謝大家,但是我不需要解析<a>。我有href="abcdef"格式的鏈接列表 。我需要獲取href鏈接并對其進行過濾,我最喜歡的網址必須包含?和=喜歡page.php?id=5謝謝!
3 回答

LEATH
TA貢獻1936條經驗 獲得超7個贊
regex不建議使用解析html
regex用于定期發生的模式。html是不是經常與它的格式(除xhtml)。例如html文件,即使你有效不有closing tag!這可能會破壞你的代碼。
使用像htmlagilitypack這樣的html解析器
您可以使用以下代碼使用以下代碼來檢索href's錨定標記中的所有內容:HtmlAgilityPack
HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);
var hrefList = doc.DocumentNode.SelectNodes("//a")
.Select(p => p.GetAttributeValue("href", "not found"))
.ToList();
hrefList 包含所有href
- 3 回答
- 0 關注
- 1544 瀏覽
添加回答
舉報
0/150
提交
取消