有什麼辦法來處理異常,如果regex.Matches
沒有匹配,並試圖返回matches.group[]
正則表達式不匹配時的疑難解答?
我有10張專輯在HTML的div列表。每個相冊有5個屬性,如album cover path
,album link
,album name
等 我已經通過在函數中使用正則表達式matchcollection完成HTML解析,並且我爲每個屬性調用此函數。
Regex regex = new Regex(pattern, RegexOptions.Compiled);
MatchCollection mc = regex.Matches(source);
string icerik = mc[0].Groups[group].Captures[0].Value;
我得到一個明確的名單如下:
- 圖像路徑:
http...
- 專輯名稱:
...
如果存在這些部件的HTML是沒有問題的。但問題是,如果,例如,第二張專輯的圖像路徑不提供在HTML?在這種情況下,不會發生匹配,並且mc[0].Groups[group].Captures[0].Value
會導致超出邊界的異常。
我能做些什麼來阻止此錯誤發生?
避免使用正則表達式來解析HTML。請參閱http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html請嘗試使用專門的庫(例如HtmlAgilityPack) – GolfWolf 2012-03-29 15:13:01
[您是否嘗試過使用XML解析器?](http://stackoverflow.com/a/1732454/26226) – jrummell 2012-03-29 15:16:52
現在我沒有足夠的時間重新啓動,但我會在下一次將這個留在我的腦海裏。謝謝:) – burakokumus 2012-03-30 08:15:42