Comment faire re.search avec une variable qui retourne le caractère ' ?
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:
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:
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
Citation:
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:
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é