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

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 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
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 à '.*'
En indiquant la variable retour directement dans le code précédent (ligne commentée) j'ai le retour erreur suivant
version=regex.search(liste)
TypeError: expected string or buffer
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 texte
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 à '.*'
Tout me semble correct mais à l'évidence ça ne l'est pas... d'où mon appel à l'aide.

En vous remerciant d'avance pour le temps passé