http://(?:(?!http://).)*
va correspondre à une chaîne qui commence par http://
jusqu'à la prochaine occurrence soit de http://
ou à la fin de la chaîne.
>>> re.findall(r'http://(?:(?!http://).)*', 'http://www.fileserve.com/file/7kXswvM/part1.rarhttp://www.fileserve.com/file/r4F3Gmh/part2.rarhttp://www.fileserve.com/file/r4F3Gmh/part3.rar')
['http://www.fileserve.com/file/7kXswvM/part1.rar',
'http://www.fileserve.com/file/r4F3Gmh/part2.rar',
'http://www.fileserve.com/file/r4F3Gmh/part3.rar']
Ceci ne fonctionnera bien sûr pas tout à fait si autre chose qu'un lien suit dans l'entrée. Comme alternative, l'expression régulière suivante correspondra jusqu'à la prochaine http://
ou jusqu'à ce que l'espace suivant (ou en fin de chaîne):
http://(?:(?!http://|\s).)*
quel environnement souhaitez-vous? C#, perl, un éditeur de texte? –
Voilà pour le conseil de la balise 'regex' d'utiliser un langage ou une balise d'outil si vous voulez limiter les réponses à un seul langage ou outil particulier. Ne l'ai-je pas assez exprimé, ou est-ce que les néos ne regardent jamais l'Extrait d'une étiquette en particulier? Peut-être que SO devrait être changé pour montrer une affiche d'un extrait d'étiquette quand les gens incluent une étiquette? – tchrist
@tchrist: [Les gens ne lisent pas.] (Http://www.joelonsoftware.com/uibook/chapters/fog0000000062.html) Joel le dit lui-même. –