Probleme boost regex

Probleme boost regex - C++ - Programmation

Marsh Posté le 30-01-2008 à 22:23:13    

Bonjour,
 
Je débute avec la lib regex de boost et j'ai un problème que je n'arrive pas à résoudre. Voici mon code:
 

Code :
  1. regex reg("(a+)" );
  2.         smatch match;
  3.         page = "aaaaabaaaaaaaaaaaa";
  4.         cout << page << endl;
  5.         if (regex_match(page, match, reg, boost::match_default | boost::match_partial))
  6.         {
  7.                 cout << match[1] << "<br>" << endl;
  8.         }
  9.         else
  10.           cout << "match pas" << endl;


 
Si j'enlève le b, ma regexp marche. Mais moi, j'aimerais avoir chaque "aaa" dans une case de mon match.
 
Je n'arrive pas à voir d'ou viens l'erreur, si quelqu'un peut m'aider.
 
Merci.

Reply

Marsh Posté le 30-01-2008 à 22:23:13   

Reply

Marsh Posté le 31-01-2008 à 08:55:50    

C'est ta regex qui fait ce qu'on lui demande non ?
 
Et juste une question, tu as VRAIMENT besoin de regex ou un coup de tokenizer en suffirait il pas ?

Reply

Marsh Posté le 31-01-2008 à 10:00:16    

Bien sur que pour cette exemple, je n'ai pas forcement besoin de regexp, mais pour le programme que je veux faire, j'en aurai besoin.
 
J'essaye juste de piger par des exemples simples comment la lib marche.
 
Pour ce qui est de ma regexp (a+), elle devrais en théorie matcher tous les éléments ou il y a un "a" ou plus et vue que je n'ai pas précisé de limiteur de début ou de fin (^$), cette exemple devrais marché (en php, il marche par exemple :) )


Message édité par sundevil le 31-01-2008 à 10:00:32
Reply

Marsh Posté le 31-01-2008 à 13:42:31    

ok :)
quid de tes options pour regex_match ?

Reply

Marsh Posté le 31-01-2008 à 17:10:13    

quid de mes options pour regex_match ?

Reply

Marsh Posté le 31-01-2008 à 19:42:34    

Ok, après une grosse lecture de la doc de boost et plusieurs tests, il s'avère que la fonction à utilisé est regex_search qui recherche dans la chaine (tandis qu'avec regex_match, la chaine doit être exact).
 
Si cela peut aidé quelqu'un d'autre ^^.

Reply

Marsh Posté le 11-06-2008 à 15:47:24    

J'ai un bug de fou avec boost::regex
 
Une erreur se produit lors de l'instanciation d'une expression reguliere boost (1.35)
 
Dans les 2 cas suivants :
boost::regex reg_toto;
reg_toto.set_expression("toto" ); // erreur
 
 
boost::regex reg_toto("toto" ); // erreur
 
 
Unhandled exception at 0x00e19a86 in XXXXXXX.exe: 0xC0000005: Access violation reading location 0xfffffffe.
 
et le debogueur se plante en plein xutility
 
 
C'est pile poil l'exemple du site de boost, je ne sais absolument pas quoi faire.


Message édité par NounouRs le 11-06-2008 à 23:17:02
Reply

Marsh Posté le 11-06-2008 à 20:09:50    

Tu peux mettre ton code complet stp ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed