Est-ce que \d++
est une expression régulière valide dans les langages de programmation qui ne prennent pas en charge le quantificateur possessive? Est-ce l'équivalent de (\d+)+
?Quantificateurs imbriqués dans boost :: regex
Lors du test en Python, une erreur sre_constants.error: multiple repeat
sera levée. En C#, il lancera une exception d'exécution: System.ArgumentException: parsing "\d++" - Nested quantifier +
. Tout comme boost :: xpressive. Mais \d++...+
est considéré comme valide dans boost :: regex.
wchar_t* s = L"abc123" ;
wregex e(L"\\d+++", boost::regex::normal) ;
wcmatch m ;
if(regex_search(s, m, e)){
wcout << m[0] << endl ;
}
La sortie est 123
.
Je l'ai compilé avec Visual C++ 2008 et boost 1.36 | 1.44. – Explogit