r'' est utilisé pour la chaîne de caractères littérale de la rendre insignifiante d'avoir des barres obliques inverses à l'intérieur de la regex
string est un module standard, j'ai donc choisi s comme une variable
Si vous utilisez une expression régulière plus d'une fois, vous pouvez utiliser r = re.compiler(...) à construire la machine de l'etat une fois et ensuite utiliser r.match(s) par la suite pour correspondre aux chaînes
Si vous le souhaitez, vous pouvez également utiliser le urlparse module pour analyser l'URL pour vous (si vous avez encore besoin de l'extrait de l'extension):
si vous voulez une expression régulière. Notez que vous devez vous échapper de la période, car il a une signification spéciale dans les expressions régulières.
1
import re
s ="ftp://www.somewhere.com/over/the/rainbow/image.jpg"print(re.search("^ftp://.*\.jpg$", s).group(0))
re.match
sera correspondre à la chaîne au débutcontrairement àre.search
:Deux choses à noter ici:
r''
est utilisé pour la chaîne de caractères littérale de la rendre insignifiante d'avoir des barres obliques inverses à l'intérieur de la regexstring
est un module standard, j'ai donc choisis
comme une variabler = re.compiler(...)
à construire la machine de l'etat une fois et ensuite utiliserr.match(s)
par la suite pour correspondre aux chaînesSi vous le souhaitez, vous pouvez également utiliser le
urlparse
module pour analyser l'URL pour vous (si vous avez encore besoin de l'extrait de l'extension):Pourquoi pas à l'aide d'une expression régulière?
Ne pensez-vous pas que ce lit de plus agréable?
Vous pouvez également prendre en charge plusieurs options pour le début et la fin:
Ne pas être gourmand, utilisez
^ftp://(.*?)\.jpg$
Essayer
si vous voulez une expression régulière. Notez que vous devez vous échapper de la période, car il a une signification spéciale dans les expressions régulières.