La méthode split() de la classe RegexObject découpe la chaîne de caractères donnée, à chaque fois qu'un motif est reconnu.
Le renvoi de la méthode est la liste des sous-chaînes restantes.
>>> p = re.compile(r'\W+') >>> p.split('This is a test, short and sweet, of split().') ['This', 'is', 'a', 'test', 'short', 'and', 'sweet', 'of', 'split', '']
Cette méthode est donc une extension du split des chaînes de caractères : le découpage ne s'effectue pas seulement suivant un motif fixé, mais suivant une expression rationnelle.
Si le motif contient des sous-groupes (des choses entre parenthèses), alors ces sous-groupes feront aussi partie de la liste retournée.
>>> p = re.compile(r'\W+') >>> p2 = re.compile(r'(\W+)') >>> p.split('This... is a test.') ['This', 'is', 'a', 'test', ''] >>> p2.split('This... is a test.') ['This', '... ', 'is', ' ', 'a', ' ', 'test', '.', '']
De plus, si un troisième argument, entier, est fournis, alors l'analyse s'arrêtera quand la taille de la liste retournée sera égale à cette valeur.
La partie de la chaîne qui n'a pas été analysée constituera le dernier élément de la liste :
>>> p = re.compile(r'\W+') >>> p.split('This is a test, short and sweet, of split().', 3) ['This', 'is', 'a', 'test, short and sweet, of split().']
Il existe aussi une méthode split de haut niveau, que l'on peut appeler directement par
re.split(pattern, string [, maxsplit = 0])
Qui découpera la chaîne string suivant l'expression rationnelle pattern.
>>> import re >>> re.split(r'\d+','dslfjdjk3213dsqlj31sqdq21314') ['dslfjdjk', 'dsqlj', 'sqdq', '']