11

这是代码:

当有 31 个组时找到:

try
{
    regex re("(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)", tr1::regex::icase);
}
catch (regex_error e)
{
    std::cout << e.what();
}

但是,我尝试再添加一个组(总共 32 个组),哎呀:

try
{
    regex re("(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)", tr1::regex::icase);
}
catch (regex_error e)
{
    std::cout << e.what();
}

捕获并打印 regex_error 异常

正则表达式错误

我在 Windows 7 上使用 VisualStudio 2010

似乎有组的最大限制。我怎样才能打破限制?

4

1 回答 1

1

我不确定 windows 版本,但 gcc 版本只有部分支持

http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011

它的第 28 节你在看。其他语言似乎能够匹配更多组

也许尝试不同的引擎?

http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines

于 2013-01-07T09:39:23.903 回答