我正在寻找Python的等价

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

["many", "fancy", "word", "hello", "hi"]

当前回答

另一种方法是通过re模块。它做的是相反的操作,匹配所有的单词,而不是按空格吐出整个句子。

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

以上正则表达式将匹配一个或多个非空格字符。

其他回答

没有参数的str.split()方法在空格上拆分:

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

使用split()将是对字符串进行拆分的最python化的方式。

记住,如果你对一个没有空格的字符串使用split(),那么这个字符串将以列表的形式返回给你,这也是很有用的。

例子:

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

另一种方法是通过re模块。它做的是相反的操作,匹配所有的单词,而不是按空格吐出整个句子。

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

以上正则表达式将匹配一个或多个非空格字符。

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