Bonjour a tous,

je cherche a match des header XML. Je cherche que des headers de ce type soit reconnue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.1" ?>
....
J'ai donc cherché une regex que j'ai définie ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<\?xml[ ]*version="[1-9]+.[\d]*"[ ]*[\w="\-]*[ ]*\?>
J'ai l'habitude de faire des regex en Javascript, java, ptyhon, etc. mais c'est la premiere fois en C++ et je ne vois pas pourquoi cette regex ne fonctionne pas.

voici mon code de test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
tr1::regex xmlRegex("<\?xml[ ]*version=\"[1-9]+\.[\\d]*\"[ ]*[\\w=\"\-]*[ ]*\?>");
 
bool isXml=false;
string line=string("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
isXml=tr1::regex_match(line.begin(),line.end(),xmlRegex);
Ici isXml devrait valoir true, mais il vaut false!!!

S'auriez vous comment faire cette regex ?

Je vous remercie d'avance pour votre aide