2015-10-05 142 views
2

多個分隔符我有蟒蛇以下字符串:分割字符串在python

foo = 'a_b_c' 

我如何分割字符串分爲兩個部分:'a_b''c'?即,我想在第二'_'

str.split('_')分裂分裂成3個部分:'a''b''c'

+8

不' 'a_b_c'.rsplit(' _」,1)'爲你工作? – vaultah

回答

4

使用str.rsplit() method有限制:從右手側

part1, part2 = foo.rsplit('_', 1) 

str.rsplit()分裂,並限制(第二個參數),它告訴,只分裂一次。

或者,使用str.rpartition()

part1, delimiter, part2 = foo.rpartition('_') 

這包括定界符作爲返回值。

演示:

>>> foo = 'a_b_c' 
>>> foo.rsplit('_', 1) 
['a_b', 'c'] 
>>> foo.rpartition('_') 
('a_b', '_', 'c') 
+0

我打算低估這一點,因爲它是以前回復的副本。 –

+3

@AlexReynold很好,這是一個糟糕的原因downvote。而這個答案不是評論的副本。 – vaultah

+4

@AlexReynolds:評論是*不*回覆,我也不能幫助某人選擇使用評論。我沒有在評論中回答這個問題。此外,我的答案還包括另一個備選* *在評論中沒有提到*。我希望投票發生在回答的幫助上。 –

2
import re 
x = "a_b_c" 
print re.split(r"_(?!.*_)",x) 

您可以re與使用lookahead我們通過_指出,拆分後不應該有_做到這一點通過re。在這裏。

+0

似乎工作。爲什麼會被低估? –

+0

只是upvoted,不知道誰downvoted – user308827

+0

是啊,我也想知道... downvoters關心解釋? –