Split string sur whitespace en Python [dupliquer]

cette question a déjà une réponse ici:

je cherche L'équivalent en Python de

String str = "many   fancy word nhello    thi";
String whiteSpaceRegex = "s";
String[] words = str.split(whiteSpaceRegex);

["many", "fancy", "word", "hello", "hi"]
321
demandé sur Martin Thoma 2011-11-13 22:46:11

4 réponses

la méthode str.split() sans argument se divise sur les espaces:

>>> "many   fancy word \nhello    \thi".split()
['many', 'fancy', 'word', 'hello', 'hi']
593
répondu Sven Marnach 2011-11-13 18:46:54
import re
s = "many   fancy word \nhello    \thi"
re.split('\s+', s)
56
répondu Óscar López 2011-11-13 18:49:54

une autre méthode à travers le module re . Il fait l'opération inverse d'assortir tous les mots au lieu de cracher toute la phrase par l'espace.

>>> import re
>>> s = "many   fancy word \nhello    \thi"
>>> re.findall(r'\S+', s)
['many', 'fancy', 'word', 'hello', 'hi']

au-dessus de regex correspondrait à un ou plusieurs caractères non-spatiaux.

12
répondu Avinash Raj 2017-11-29 07:39:27

en utilisant split() sera le plus Pythonic façon de se séparer sur une chaîne de caractères.

il est également utile de se rappeler que si vous utilisez split() sur une chaîne qui n'a pas d'espace, alors cette chaîne vous sera retournée dans une liste.

exemple:

>>> "ark".split()
['ark']
9
répondu Robert Grossman 2017-02-21 14:25:20