2013-01-07 26 views
11

đây là mã:Có giới hạn nhóm tối đa trong std :: regex của C++ không?

Đó là tìm khi có 31 nhóm:

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(); 
} 

Tuy nhiên, tôi cố gắng thêm một nhóm nữa (tổng cộng 32 nhóm), oops:

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(); 
} 

ngoại lệ regex_error bị bắt và in

lỗi biểu thức chính quy

tôi sử dụng VisualStudio 2010 trên Windows 7

Dường như có giới hạn tối đa của nhóm. Làm thế nào tôi có thể phá vỡ giới hạn?

+0

Chỉ tò mò: Tại sao bạn muốn nhiều nhóm trong một regex đơn? – Cerbrus

+3

Chia nhỏ chức năng, nhiều phương thức, có thể là nhiều (hiểu) regexps –

+6

Bạn đang viết một trình phân tích cú pháp HTML? –

Trả lời

Các vấn đề liên quan