-
tr1 regex callback
Bonjour,
j'aimerais parcourir une chaine avec une expression régulière et pour chaque caractère avoir le ou les token possibles de l'expression.
le but de ceci est de pouvoir conditionnellement changer un caractère de ma chaine lorsque celle-ci ne correspond pas à l'expression
Soit pour l'expression = [A-Z]{3}[0-9]{4} et la chaine = ABC1O23
l'expression ne match pas à cause de la lettre O dans le 2eme token, j'aimerai pouvoir la remplacer par le chiffre 0
est-ce possible ? comment, quelle technique ?
J'utilise actuellement le tr1::regex
merci
-
bonjour, si tu as gcc 4.7, tu peux regarder du côté de std::regex en C++11 ;)
-
@germinolegrand
Tu réponds pas à la question du monsieur :)
@Mike@Nestor
Tu veux faire en 2 passes (première pour remplacer O -> 0 puis utiliser ta regex) ? ou tu veux ajouter O dans ta regex ?
Dans le second cas, tu as juste à ajouter O dans la classe de caractères correspondant aux chiffres :
Pour les regex, tu peux lire :
Utilisation de Boost.Regex
Utilisation des expressions régulières en .Net
Les expressions régulières et .NET
-
Salut gbdivers,
merci pour ta reponse.
Non je ne veux pas modifier ma grammaire, je veux parser ma chaine et savoir pour chaque caractere quel est le token associé et pouvoir dans le cas ou il échoue modifier ma chaine, donc 2 passes.
merci