OVH Cloud OVH Cloud

Expressions régulieres

3 réponses
Avatar
ReM
Bonjour,

Je ne suis pas très fort en expressions régulieres et je cherche à
extraire le nom des fichiers cgi et html contenu dans un fichier

Exemple :

<fichier>
import cgi
(...)
document_html = "test.html"
(...)
l = """<a href="index.cgi">
</fichier>

devrait me retourner test.html et index.cgi.

Je dois parser des fichiers cgi ( en python ), html et py

Merci ;o)

ReM

3 réponses

Avatar
Bruno Desthuilliers
ReM wrote:
Bonjour,

Je ne suis pas très fort en expressions régulieres et je cherche à
extraire le nom des fichiers cgi et html contenu dans un fichier

Exemple :

<fichier>
import cgi
(...)
document_html = "test.html"
(...)
l = """<a href="index.cgi">
</fichier>

devrait me retourner test.html et index.cgi.



import re
fichier = """
import cgi
(...)
document_html = "test.html"
(...)
s="/chemin/bidule.html"

f = "../la_bas/ou/ici/machin.truc.html"

l = """<a href="index.cgi">
"""

e=r'"((?:.{0,2})/?(?:[A-Za-z][w+.]+/?)+.(?:html|cgi)){1}?"'re.compile()

m = re.findall(e, fichier)
print m


Ca devrait fonctionner dans la plupart des cas (nb: pas pour les url
absolues).


Merci ;o)


De rien - maintenant, tu a un second problème... !-)

Avatar
Cémoi
<snip>

import re
fichier = """
import cgi
(...)
document_html = "test.html"
(...)
s="/chemin/bidule.html"

f = "../la_bas/ou/ici/machin.truc.html"

l = """<a href="index.cgi">
"""

e=r'"((?:.{0,2})/?(?:[A-Za-z][w+.]+/?)+.(?:html|cgi)){1}?"'re.compile()


On peut aussi écrire l'expression réguliere sur plusieurs lignes et la
commenter, ce qui est fort sympathique pour mettre au point et maintenir
le code. J'avais donné un exemple dans un ancien post:
http://groups.google.fr/group/fr.comp.lang.python/browse_thread/thread/67f64746551803c4/6a1a2d8eb6e4e5eb?lnk=st&q=&rnum=1&hl=fr#6a1a2d8eb6e4e5eb

En espérant que ça aide,

Laurent

Avatar
Bruno Desthuilliers
<snip>

e=r'"((?:.{0,2})/?(?:[A-Za-z][w+.]+/?)+.(?:html|cgi)){1}?"'


On peut aussi écrire l'expression réguliere sur plusieurs lignes et la
commenter,


Ah oui mais là c'est plus du jeu ! Trop facile !