1. ホーム
  2. python

[解決済み] Pythonで未知数のスペースをセパレータとして文字列を分割する

2023-06-29 10:20:20

質問

のような関数が必要です。 str.split(' ') のような関数が必要ですが、複数のスペースがあり、意味のある文字の間に異なる数のスペースがある可能性があります。このようなものです。

s = ' 1234    Q-24 2010-11-29         563   abc  a6G47er15        '
ss = s.magic_split()
print(ss)  # ['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15']

どうにかして正規表現で間にあるスペースをキャッチできないでしょうか?

どのように解決するのですか?

に何も引数を渡さない場合 str.split() に何も引数を渡さなければ、空白の連続を一つの区切り文字として扱います。

>>> ' 1234    Q-24 2010-11-29         563   abc  a6G47er15'.split()
['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15']

また、必要であれば

>>> class MagicString(str):
...     magic_split = str.split
... 
>>> s = MagicString(' 1234    Q-24 2010-11-29         563   abc  a6G47er15')
>>> s.magic_split()
['1234', 'Q-24', '2010-11-29', '563', 'abc', 'a6G47er15']