2009-11-21 70 views
0

我正在解析一些文本(誠然HTML,但它的小東西,和RegEx(應該)做的很好)。 我試圖使用一些捕獲,但他們只是不做我認爲他們應該。爲什麼我的捕獲不能在.NET正則表達式中工作?

Match m = new Regex("(.*?)<br>(.*?)/(.*?)/(.*)", 
    RegexOptions.None).Match("word<br>stuff1/stuff2/stuff3") 
CaptureCollection c = m.Captures; 

在我看來,c應該包含4個條目;每組括號中的東西。 但它沒有。無論我是否包含任何括號,或所有的括號,或只是第一個,我的CaptureCollection都只包含原始字符串。

我缺少一些關於CaptureCollection的內容?或者我沒有正確捕獲正則表達式?

感謝您的解決方案(如果我能我會投了)

+0

我不知道投票,但你可以*接受*解決方案 - 並應該(假設你是馬克·拜爾斯的答案)。 – 2009-11-21 02:27:52

+1

啊,這就是tick的作用。 – Squidly 2009-11-21 02:46:32

+0

爲什麼不使用Html Agility Pack並消除所有的正則表達式問題? http://www.codeplex.com/htmlagilitypack – TrueWill 2009-11-21 06:15:11

回答

2

你想要m.Groups,而不是m.Captures。

閱讀關於捕獲MSDN

0

你有逃避你/用\,像/?即時通訊不知道,這是我會嘗試。

Match m = new Regex("(.*?)<br>(.*?)\/(.*?)\/(.*)", 
    RegexOptions.None).Match("word<br>stuff1/stuff2/stuff3") 
CaptureCollection c = m.Captures; 
相關問題