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 re
MODULE. 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.