2012-03-07 8 views
2

ジョン・フランク・スミスpython regex split first charchter

何私がしたいことはとても配列はになります最初のスペースで

を区切ることです[0]ジョン= [1] =フランク・スミス

何:私は名前を持っています私は試しました、私はスペースを〜で置き換え、正規表現で分割しようとしました。

import re 
s="John~Frank~Smith" 
l=re.compile(r'/~(.+)?/').split(s) 

出力は次のようになります。

['John~Frank~Smith'] 

のplsは私がたくさんとgoogle.com多くが、出来ませんが試してみました

上記のようにどのように私は達成することができます示唆しています。

まず、正規表現にスペースを入れる方法がわかりません。

+5

正規表現にスペースを入れるには、正規表現のスペースを_putしてください。 – katrielalex

答えて

10

使用str.split()maxsplitパラメータを持つ:

>>> s = "John Frank Smith" 
>>> s.split(None, 1) 
['John', 'Frank Smith'] 

注:これは、複数の出現に分割されます空白は、

のような文字列です。
John Frank Smith 

でも同じ結果が得られます。セパレータとして1つの空白だけが必要な場合は、s.split(' ', 1)を使用します。

+0

気をつけてください: 's.split(None)'は空白でなく、_all_空白で分割されます。これは望まれるものであってもなくてもよい。 – katrielalex

+0

@katrielalex:はい、私はこのケースでは合理的だと思っていましたが、別に言及します –

0

正規表現の必要はありませんが、スプリットを使用する():

s="John~Frank~Smith" 
s.split('~',1) 

['John', 'Frank~Smith']

1

あなたは正規表現を使用する場合:

>>> re.split(r'~', "John~Frank~Smith",1) 
['John', 'Frank~Smith'] 

~はあなたの例からです。