Bonjours,
Je cherche à manipuler des expréssions rationnelles en C++. Je fais donc des test avec un petit bout de code.
La compilation se passe bien mais j'ai systématiquement une erreur quand mon expression contient des crochets, ce qui vous vous en conviendrais est assez ennuyeux.
Le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <regex>
 
int main(int arc, char** argv)
{
    std::regex reg;
    reg.assign("A|B.+[0-9]", std::regex::ECMAScript);
    std::cout << std::regex_match("Bs ebrv4", reg) << std::endl;
    return 0;
}
Et ça donne toujours le message suivant à l’exécution:
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
Aborted (core dumped)
Je ne vois vraiment pas ce qui peut poser problème. Notez que les expressions sans crochets ne posent pas de problème. J’espère donc que vous allez voir ce que j'ai raté.