[code]import re
chaine=‘sdlfkm sdkljflhttp://coucou.com/fdlksj?kdsjkl=dsf&a=eslmskdlm’
expr = re.compile(r’(.*)’)
print expr.search(chaine).groups()[0]
C’est du python 2.6, je n’ai pas plus récent sur ma machine, mais d’après la doc de python 3 je ne crois pas que l’API aie changée (docs.python.org/py3k/library/re.html).
Note que la compilation de l’expression n’est pas nécessaire mais améliore les performances. Il est aussi utile de savoir que tu peux prendre toute une page HTML, tout mettre dans une string et faire une fois la recherche et avoir tout les résultats dans une liste (ça peut être pratique).
L’exemple de kna, n’a pas le même sens. Il ne s’agit alors pas de chercher tout ce qui se trouve entre les balise , mais toutes les urls. Elle devrait d’ailleurs être complétée au moins comme ça je pense :
Au sujet de cette expression :
[ul]
[li][] : définit des classes de caractères donc [abc] va permettre de matcher a, b ou c[/li]
[li]^ : au début d’une définition de classe de caractère il inverse celle-ci donc [^abc] va matcher n’importe quoi sauf a, b et c[/li]
[li][^] : va donc matcher tout caractère sauf <, l, i, n ou k[/li]
[li]+ : indique que la classe précédente peut se trouver 1 ou plusieurs fois dans ce que l’on matche [^]+ peut matcher ‘abc’, ‘u’, ‘-’, ‘utr_hsd’, …[/li]
[li][$] : est une classe de caractère qui matche n’importe quel des caractères ‘$’, ‘<’, ‘>’, ‘l’, ‘i’, ‘n’ et ‘k’[/li][/ul]
L’expression de kna correspond à :
toute chaines qui commence par ‘http://’ suivi d’au moins un caractère qui n’est pas ‘<’.
Celle de syam, c’est tout ce qui commence par ‘’, suivi de n’importe quoi, suivi de ‘’.