2012-03-07 64 views
2

例如我有名稱:約翰·弗蘭克·史密斯python正則表達式分裂第一個charchter

我要的是第一空間

所以陣列將[0] =約翰[1] =弗蘭克·史密斯

到單獨什麼我試過了,我用〜代替空格,並試圖用正則表達式分割。

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

輸出爲:

['John~Frank~Smith'] 

請建議我如何可以在上面

描述我嘗試了很多和google.com了很多,但沒能做到實現。

首先我不知道如何在正則表達式中放置空間。

+5

要在正則表達式中放入空格,請在正則表達式中輸入空格。 – katrielalex 2012-03-07 13:18:27

回答

10

使用str.split()maxsplit參數:

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

注:這將分拆在多次發生的空格,所以像

John Frank Smith 

會給出相同的結果。如果您只需要一個空格作爲分隔符,請使用s.split(' ', 1)

+0

注意:'s.split(None)'將在_all_空格上分割,而不僅僅是空格。這可能是也可能不是想要的。 – katrielalex 2012-03-07 13:19:17

+0

@katrielalex:是的,我認爲在這種情況下是明智的,但我會分開提及它 – 2012-03-07 13:20:54

0

不需要正則表達式,採用分體式():

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

['John', 'Frank~Smith']

1

如果你想使用正則表達式:

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

~是從你的榜樣。