如何只按字符串中的第一个特殊字符拆分字符串?

时间:2014-12-28 19:39:41

标签: python regex string list split

我想将下面的字符串除以该字符串中的第一个等号

字符串:

 s= 'ButtonParams=U3ViamVjdCxFbWFpbA=='

Desired_String:

 s= ['ButtonParams','U3ViamVjdCxFbWFpbA==']

当我做s.split(" =")时,我得到以下内容,这是我不想要的内容:

s.split("=")
['ButtonParams', 'U3ViamVjdCxFbWFpbA', '', '']

我需要在字符串列表中运行此函数,在这种情况下,可伸缩性在这里很重要。

3 个答案:

答案 0 :(得分:8)

split接受一个可选的“maxsplit”参数:如果将其设置为1,它将在找到的第一个=字符上拆分并返回字符串的其余部分:

>>> s.split('=', 1)
['ButtonParams', 'U3ViamVjdCxFbWFpbA==']

答案 1 :(得分:2)

s.split("=", maxsplit=1)是最好的,但

import re
print (re.split('=',s,1))

输出

['ButtonParams', 'U3ViamVjdCxFbWFpbA==']

正如您标记了

稍微偏离帖子

如果预期输出为['ButtonParams', 'U3ViamVjdCxFbWFpbA'],那么您可以使用以下liscos(列表推导)

  • [i for i in s.split('=') if i is not '']
  • [i for i in s.split('=') if i ](由Adam Smith供稿)

答案 2 :(得分:1)

str.split接受一个可选参数maxsplit,它确定要进行的分割(最大)次数,例如:

"ButtonParams=U3ViamVjdCxFbWFpbA==".split("=", maxsplit=1)
# ['ButtonParams', 'U3ViamVjdCxFbWFpbA==']