Bonjour à tous,
Après avoir parcouru quelques documentation sur le module re et les exemples fourni sur le net je sèche sur la réutilisation d'une variable qui contient le caractère ' au milieu de la chaine de caractère.
Voici les différents éléments retourné et ce que j'ai tenté. Les lignes commentée sont les retours obtenu
En tentant en remplaçant manuellement le caractère spécial cela fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 liste = WAPT.list('hugo-7zip') print liste # [PackageEntry('hugo-7zip','18.1.0.0-3') architecture=x64]
En indiquant la variable retour directement dans le code précédent (ligne commentée) j'ai le retour erreur suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 regex=re.compile(',\'(.*)\'\)',re.I) #re.I permet d'ignorer la case (majuscule/minuscule) version=regex.search('[PackageEntry(\'hugo-7zip\',\'18.1.0.0-3\') architecture=x64]') #version=regex.search(liste) if version: print version.group(1) # le groupe 1 correspond à '.*'
J'ai également tenté d'insérer des backslash dans la chaine mais cette fois ci il n'y a aucune tentative de remplacement de texteversion=regex.search(liste)
TypeError: expected string or buffer
Tout me semble correct mais à l'évidence ça ne l'est pas... d'où mon appel à l'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 str = "[PackageEntry('hugo-7zip','18.1.0.0-3') architecture=x64]" new_str = str.replace('\'', '\\\'') print new_str #WAPT.list('hugo-7zip') #[PackageEntry('hugo-7zip','18.1.0.0-3') architecture=x64] regex=re.compile(',\'(.*)\'\)',re.I) #re.I permet d'ignorer la case (majuscule/minuscule) #version=regex.search('[PackageEntry(\'hugo-7zip\',\'18.1.0.0-3\') architecture=x64]') version=regex.search(new_str) if version: print version.group(1) # le groupe 1 correspond à '.*'
En vous remerciant d'avance pour le temps passé
Partager