gesplitste string op witruimte in Python

Ik ben op zoek naar het Python-equivalent van

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

Antwoord 1, Autoriteit 100%

De str.split()methode zonder een argument splitst op witruimte:

>>> "many   fancy word \nhello    \thi".split()
['many', 'fancy', 'word', 'hello', 'hi']

Antwoord 2, Autoriteit 8%

import re
s = "many   fancy word \nhello    \thi"
re.split('\s+', s)

Antwoord 3, Autoriteit 2%

Gebruik split()Zal de meeste Pythonic manier van splitsen op een tekenreeks.

Het is ook handig om te onthouden dat als u split()op een tekenreeks gebruikt die geen witruimte heeft, dan wordt die string naar u teruggebracht in een lijst.

Voorbeeld:

>>> "ark".split()
['ark']

Antwoord 4, Autoriteit 2%

Nog een methode via reMODULE. Het doet de omgekeerde werking van het matchen van alle woorden in plaats van de hele zin door de ruimte te spuwen.

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

Bovenstaande regex zou een of meer niet-ruimtetekens overeenkomen.

Other episodes