This question already has an answer here:
-
Split a string with unknown number of spaces as separator in Python
3 answers
I\'m looking for the Python equivalent of
String str = \"many fancy word \\nhello \\thi\";
String whiteSpaceRegex = \"\\\\s\";
String[] words = str.split(whiteSpaceRegex);
[\"many\", \"fancy\", \"word\", \"hello\", \"hi\"]
The str.split()
method without an argument splits on whitespace:
>>> \"many fancy word \\nhello \\thi\".split()
[\'many\', \'fancy\', \'word\', \'hello\', \'hi\']
import re
s = \"many fancy word \\nhello \\thi\"
re.split(\'\\s+\', s)
Another method through re
module. It does the reverse operation of matching all the words instead of spitting the whole sentence by space.
>>> import re
>>> s = \"many fancy word \\nhello \\thi\"
>>> re.findall(r\'\\S+\', s)
[\'many\', \'fancy\', \'word\', \'hello\', \'hi\']
Above regex would match one or more non-space characters.
Using split()
will be the most Pythonic way of splitting on a string.
It\'s also useful to remember that if you use split()
on a string that does not have a whitespace then that string will be returned to you in a list.
Example:
>>> \"ark\".split()
[\'ark\']