Je cherche l'équivalent Python de
String str = "many fancy Word \nhello \thi";
String whiteSpaceRegex = "\\s";
String[] words = str.split(whiteSpaceRegex);
["many", "fancy", "Word", "hello", "hi"]
La méthode str.split()
sans argument se divise en espaces:
>>> "many fancy Word \nhello \thi".split()
['many', 'fancy', 'Word', 'hello', 'hi']
import re
s = "many fancy Word \nhello \thi"
re.split('\s+', s)
Une autre méthode à travers le module re
. Il effectue l'opération inverse consistant à faire correspondre tous les mots au lieu de cracher toute la phrase par un 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-espace.
Utiliser split()
sera le moyen le plus Pythonic de diviser une chaîne.
Il est également utile de se rappeler que si vous utilisez split()
sur une chaîne ne contenant pas d'espaces, cette chaîne vous sera renvoyée dans une liste.
Exemple:
>>> "ark".split()
['ark']