2012-12-14 63 views
-1

我有一個html代碼。 我有這樣的正則表達式正則表達式c#問題

MatchCollection matches = Regex.Matches(go, @"photoWrapper""><div><a href=""(?<id>[^""]+?)\?"); 

解析它,我收到?

matches[0].Groups["id"].Value = "/group/47502002094086"; 
matches[1].Groups["id"].Value = "/dk"; 
matches[2].Groups["id"].Value = "/prostooglavnom"; 

如何編輯我的正則表達式或添加不便,接受在比賽中只

matches[0].Groups["id"].Value = "47502002094086"; 
matches[1].Groups["id"].Value = "prostooglavnom"; 

任何幫助= \ Full html code:http://pastebin.com/xEJNiD4G

+1

你應該表現出你解析HTML代碼... –

+0

添加到主題 – user1895750

+0

這裏沒有關於你的HTML代碼結構足夠的信息 - 請提供它的相關樣品。 – Matt

回答

7

您有隻爲自己發現爲什麼Regex is a poor choice for parsing HTML

我建議你使用HTML Agility Pack解析和查詢你的HTML。

源代碼下載附帶了很多示例項目。

什麼是Html Agility Pack(HAP)?

這是一個敏捷的HTML解析器,它構建了一個讀/寫DOM並支持普通的XPATH或XSLT(實際上,您不需要理解XPATH或XSLT就可以使用它,不用擔心)。它是一個.NET代碼庫,允許您解析「離開網頁」的HTML文件。解析器對「真實世界」格式錯誤的HTML非常寬容。對象模型與提出System.Xml非常相似,但是對於HTML文檔(或流)。

+0

看到列表中的問題標題,並認爲「甚至有錢說有人發佈了一個鏈接到THAT答案」 – Kevin

+1

@Kevin - 這是任何人用正則表達式解析HTML的規範答案... – Oded

+0

我不想使用這個庫。我想使用regexp = \ – user1895750