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', '']