La méthode précédente peut se résumer comme suit :
On peut procéder différemment, plus rapidement, en utilisant les fonctions de haut-niveau du module re.
Ce dernier propose, en effet, des fonctions match(), search(), sub(), etc. directement exploitables, comme le montre l'exemple suivant :
>>> print re.match(r'From\s+', 'Fromage amk') None >>> re.match(r'From\s+', 'From amk Thu May 14 19:12:10 1998') <re.MatchObject instance at 80c5978> >>> re.findall(r'\d+', 'From amk Thu May 14 19:12:10 1998') [14, 19, 12, 10, 1998]
Bien sûr, ces méthodes font exactement la même chose : création d'un objet RegexObject, puis d'un objet MatchObject, et stockage de l'expression compilée dans le cache (pour une utilisation future plus rapide).
Quelle méthode choisir ?
ref = re.compile( ... )
charref = re.compile( ... ) starttagopen = re.compile( ... )