web-dev-qa-db-ja.com

Pythonで空白文字列を分割する

私は同等のPythonを探しています

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

["many", "fancy", "Word", "hello", "hi"]
368
siamii

引数なしのstr.split()メソッドは空白に分割されます。

>>> "many   fancy Word \nhello    \thi".split()
['many', 'fancy', 'Word', 'hello', 'hi']
686
Sven Marnach
import re
s = "many   fancy Word \nhello    \thi"
re.split('\s+', s)
59
Óscar López

reモジュールによる別の方法。文全体をスペースでくっつけるのではなく、すべての単語を照合するという逆の操作を行います。

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

上記の正規表現は、1つ以上のスペース以外の文字と一致します。

14
Avinash Raj

split()を使うことは、文字列を分割する最もPythonicの方法になるでしょう。

空白を含まない文字列でsplit()を使用すると、その文字列がリストとして返されることを覚えておくと便利です。

例:

>>> "ark".split()
['ark']
10
Robert Grossman