我需要一個(gè)正則表達(dá)式模式來(lái)查找HTML中的網(wǎng)頁(yè)鏈接。我首先使用@"(<a.*?>.*?</a>)"提取鏈接(<a>),但無(wú)法從中獲取鏈接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號(hào)是無(wú)效的,我(?和=是必不可少的)謝謝大家,但是我不需要解析<a>。我有href="abcdef"格式的鏈接列表 。我需要獲取href鏈接并對(duì)其進(jìn)行過濾,我最喜歡的網(wǎng)址必須包含?和=喜歡page.php?id=5謝謝!
2 回答

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
regex不建議使用解析html
regex用于定期發(fā)生的模式。html是不是經(jīng)常與它的格式(除xhtml)。例如html文件,即使你有效不有closing tag!這可能會(huì)破壞你的代碼。
使用像htmlagilitypack這樣的html解析器
您可以使用以下代碼使用以下代碼來(lái)檢索href's錨定標(biāo)記中的所有內(nèi)容:HtmlAgilityPack
HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);
var hrefList = doc.DocumentNode.SelectNodes("//a")
.Select(p => p.GetAttributeValue("href", "not found"))
.ToList();
hrefList 包含所有href
添加回答
舉報(bào)
0/150
提交
取消