Split string on whitespace in Python [duplicate]

2019-01-01 10:19发布

问题:

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\"]

回答1:

The str.split() method without an argument splits on whitespace:

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


回答2:

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


回答3:

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.



回答4:

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\']