2015-10-05 182 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关心解释? –