2010-03-11 45 views
2

考虑这个正则表达式:^([0-9]+)(?: ([-\+/%\*]) ([0-9]+))+$正则表达式:是否可以引用捕获的所有重复?

在英语中,它表示“一个数字,后跟一个或多个(一个操作和另一个数字)”。

匹配针对像5 + 4该正则表达式的受试者产生$ 1 = 5,$ 2 = +和$ 3 = 4

匹配针对这个问题:5 + 4 * 3,我得到$ 1 = 5,$ 2 = *和$ 3 = 3.

在后一种情况下,我可以捕获和引用+和4吗?

换句话说,当在正则表达式中使用量词时,我可以参考除最终捕获序列以外的序列吗?

如果答案取决于n中的语言或平台,我想我最感兴趣的是:

  • C,与PCRE
  • 的Javascript
  • .NET,与System.Text.RegularExpressions

回答

1

在.NET中,你可以使用

myMatch.Groups[1].Captures 
+1

但是,如果你想解析数学表达式,就算在.NET中也不要使用正则表达式。那种方式就是疯狂。 : - / – 2010-03-11 06:59:44