为什么我的捕获在.NET正则表达式中不起作用?

时间:2009-11-21 02:01:11

标签: c# .net regex

我正在解析一些文本(当然是HTML,但它是小东西,RegEx(应该)做得很好)。 我试图使用一些捕获,但他们只是不按我认为的那样做。

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

在我看来,c应该包含4个条目;每组括号中的东西。 但事实并非如此。无论我是否包括任何括号,或者所有括号,还是仅包括第一个,我的CaptureCollection只包含原始字符串。

我遗漏了一些关于CaptureCollection的内容?或者我在正则表达式中没有正确捕获?

感谢您的解决方案(如果可以,我会投票)

2 个答案:

答案 0 :(得分:2)

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

了解MSDN上的捕获。

答案 1 :(得分:0)

你是否必须用\来逃避/,像/?我不确定,这是我会尝试的。

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