Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

expressions reguliere perl>python

3 réponses
Avatar
biscotte a la crevette
bonjours,

je me suis r=E9cemment int=E9ress=E9 a l'app-engine de google et j'ai
decider de recoder les script (perl) de mon server vers ce systeme
(python) , jusqu'a hier , aucun souci mais aujourdhui je me suis lanc=E9
dans le recodage d'un chat ... mais je bloque sur le systeme de
replacement de string :
voila le code original (perl) :
$str =3D~ s!\[b\](.+?)\[/b\]!$1!g;
qui remplace dans la variable str les [b] [/b] par des <b> </b>
mais je n'arrive pas a faire de meme avec python , je me retrouve la
plupart du temp avec un
"cannot concatenate 'str' and 'NoneType' objects" (le NoneType etant
provoqu=E9 par greeting.msg)
j'ai essay=E9 :
str =3D re.match("[b](.*?)[/b]", greeting.msg)
mais je sait pas comment manipuler les match ou autre remplace en
python.

si une lumi=E8re bienveillante pouvais me montrer les chemin ;)
merci

3 réponses

Avatar
cémoi
biscotte a la crevette a écrit :
bonjours,

je me suis récemment intéressé a l'app-engine de google et j'ai
decider de recoder les script (perl) de mon server vers ce systeme
(python) , jusqu'a hier , aucun souci mais aujourdhui je me suis lancé
dans le recodage d'un chat ... mais je bloque sur le systeme de
replacement de string :
voila le code original (perl) :
$str =~ s![b](.+?)[/b]!$1!g;
qui remplace dans la variable str les [b] [/b] par des <b> </b>
mais je n'arrive pas a faire de meme avec python , je me retrouve la
plupart du temp avec un
"cannot concatenate 'str' and 'NoneType' objects" (le NoneType etant
provoqué par greeting.msg)
j'ai essayé :
str = re.match("[b](.*?)[/b]", greeting.msg)
mais je sait pas comment manipuler les match ou autre remplace en
python.

si une lumière bienveillante pouvais me montrer les chemin ;)




Voici une piste:


import re
string = "un [b] texte balise [/b] a modifier"
string = re.sub('[b](.+?)[/b]', r'<b>1</b>', string)


A noter qu'en Python les chaines de caractères disposent de la méthode
'replace' qui permet de faire pas mal de choses avant de faire appel aux
expressions régulières.

De la documentation en français est disponible à ces différentes adresses:

http://quentel.pierre.free.fr/python-trad/module-re.html
http://diveintopython.adrahon.org/regular_expressions/index.html

Il existe également un debugger pour les RE en Python:

http://kodos.sourceforge.net/


HTH,

Laurent


merci


Avatar
biscotte a la crevette
merci a toi , j'ai réussi a remplacer ce que je voulais dans un string
mais le problème viens du fait que la récupération d'une info dans la
base de donnée (Greeting) chez google n'a pas d'attribut (NoneType)
je ne peut donc pas procéder a un remplace ou autre :s
Avatar
Bruno Desthuilliers
biscotte a la crevette a écrit :
merci a toi , j'ai réussi a remplacer ce que je voulais dans un string
mais le problème viens du fait que la récupération d'une info dans la
base de donnée (Greeting) chez google n'a pas d'attribut (NoneType)



NoneType est la classe du singleton None (dont le nom est assez
explicite, je pense). Je n'ai jamais mis le nez dans googleapp, mais
AMHA, si tu a un None au lieu de la valeur attendu, c'est qu'il y a un
loup quelque part dans ton code.