2016-03-18 11 views
-3

私はPythonの初心者です。':'デリミタ(python)を使って文字列を分割する

私が使用して次のように文字列を分割しようとしています ':' 区切り文字を:

例:代わりに

new_list = ['a/bc/rsd','Mar 4 10:13:23.78','asgehaa','10/251[162]','%bavst{142}'] 

my_string = a/bc/rsd: Mar 4 10:13:23.78 : asgehaa:10/251[162]:%bavst{142} 
new_list = my_string.split(":") 

このこのようなリストを配る必要があります日付も分割され、結果リストは次のようになります。

new_list = ['a/bc/rsd','Mar 4 10','13','23.78','asgehaa','10/251[162]','%bavst{142}'] 

私は日付を分割したくありません。これを実装するための回避策を知っていますか?

+6

あなたは、Pythonが分割したいコロンを推測できると思いますか? –

+4

実際、その時のコロンは、文字列中の他のコロンと同じコロニーです。 – kindall

+0

これは ':'ごとに分割されます。それ以外はどうすればいいですか? –

答えて

4

このコメントに従うには、どのようにして:を区切り文字として使用するか、そしてどこでそれを保持するかをPythonに知らせることはできません。実際の入力データに応じて、1つのオプション、あなたが持っている、非数字の前の文字持つ:で文字列を分割するre.split()を使用することがあります

>>> re.split(r"(?<!\d):", my_string) 
['a/bc/rsd', ' Mar 4 10:13:23.78 ', ' asgehaa', '10/251[162]', '%bavst{142}'] 

(?<!\d)negative lookbehindある - 探して前の文字が桁でないことを示します。

+0

@ cricket_007私はそれを修正したと思います。これは私に砂の城のように見えます:) – alecxe

関連する問題