2010-11-30 19 views
30

string.split( '')と似た関数が必要ですが、意味のある文字の間に複数のスペースと異なる数がある可能性があります。そのような 何か:Pythonで区切り文字として不明なスペースを含む文字列を分割する

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

は私が何とか間でそれらのスペースをキャッチするために正規表現を使用することはできますか?

誰かが助けてくれますか?

答えて

61

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

それとも、

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

くそをしたい場合にお試しください!なぜ引数なしでsplit()を試してみませんでしたか? :) ありがとうございました! – user63503

+1

引数なしでは、split()は「任意の空白」を分割するので、タブ(たとえば)も区切り文字として扱われます(そして、タブ区切り文字として単一の区切り文字として吸収されます)。 –

+2

それは実際には問題です(それはほとんどありません) '' s [sの場合はs.split( '')のsubs] ' – aaronasterling

14
s = ' 1234 Q-24 2010-11-29   563 abc a6G47er15    ' 
ss = s.split() 
print ss 
['1234','Q-24','2010-11-29','563','abc','a6G47er15'] 
関連する問題