2016-06-20 10 views
0

私は以下のような文を持っています。Python3の空白の数に基づいて文字列を分割する最も簡単な方法

Ok I want to split   this sentence completely, Using that big space gap. 
with open("Sample2.txt","r") as f: 
     for line in f: 
     B.append(line.split(" ")) 
     print (B) 

私はOUTPUTにそのようなを得る:

[['Ok I want to split', '', '', 'this sentence completely, Using that big space gap.\n']] 

は、論理的にはこれは正しいです。しかし、私はスプリットの間に2つの余分なエントリを必要としません。

理想出力あるべき:

[['Ok I want to split','this sentence completely, Using In that big space gap.\n']] 

EDIT:はスプリット間の空間の任意の数が存在すると仮定し、それらを手動でカウント維持することは不可能です。

ああ、私はその厄介な '\ n'について何ができますか?

答えて

1

あなたは正規表現を使用する必要があります:

>>> re.split(r' {4,}', s) 
['Ok I want to split', 'this sentence completely. Using that big space gap.'] 

バージョンが "4つの以上のスペース" に分割します。

\nを削除する場合は、foo.rstrip()と入力してください。fooはあなたの文字列です。

0

1つのドットの隣に複数のスペースまたはスペースが存在する場合は、複数のスペースまたはスペースに分割してください。

re.split(r'\s{2,}|(?<=\.)\s+', strin) 

例:

>>> h = 'Ok I want to split   this sentence completely. Using that big space gap.' 
>>> re.split(r'\s{2,}|(?<=\.)\s+', h) 
['Ok I want to split', 'this sentence completely.', 'Using that big space gap.'] 
>>> 
1

regexp +(空白文字の後に1+スペースを使用)を使用して、入力文字列を取り除いて除去するために、\nを取り除きます。

import re 
re.split(r' +', a.strip()) 
関連する問題