Pourquoi cette expression régulière ne fonctionne pas?
Bonjour,
je souhaite utiliser une expression régulière avec le module "re".
En effet j'ai par exemple une chaîne de caractère du type:
"test[2].maVariable"
Ici j'ai mis [2] mais il peut s'agir d'un autre chiffre, je ne sais pas à l'avance lequel.
Je veux transformer ma chaîne en une autre chaîne du type:
"test3.maVariable"
Donc retirer les crochets (il ne peut y a voir qu'un seul couple de crochets par chaine) et ajouter 1 au nombre encerclé par les crochets.
J'ai donc fait:
Code:
1 2 3 4 5 6 7
| import re
# Je recupere la valeur du nombre entre crochets dans ma chaine de depart
m = re.match("\[(\d+)\]", chaine)
if m is not None:
indice = int(m.group(0)) + 1
# Je remplace le "[n]" par "n+1"
result = re.sub("\[\d+\]", str(indice), chaine) |
Cependant m est toujours égal à "None".
Je ne vois pas pourquoi il ne trouve pas le pattern "\[(\d+)\]" que je lui fournis, "chaine" a bien la valeur que j'attends.
Merci d'avance pour votre aide!