用“(”和“)”拆分字符串并保留分隔符(Python)

时间:2017-10-29 15:11:10

标签: python regex

我们假设我有这个字符串:

s = "123(45)678"

我怎样才能获得此列表?

l = ['123','(','45',')','678']

3 个答案:

答案 0 :(得分:7)

如果您只对'('')'感兴趣,那么str.partition就足够了。

由于您有多个分隔符并且想要保留它们,因此可以将re.split与捕获组一起使用:

import re

s = "123(45)678"

print(re.split(r'([()])', s))
# ['123', '(', '45', ')', '678']

答案 1 :(得分:1)

您可以使用re.findall

import re
s = "123(45)678"
final_data = re.findall('\d+|\(|\)', s)
print(final_data)

输出:

['123', '(', '45', ')', '678']

答案 2 :(得分:0)

如果您不想使用re,那么您可以试试这个:

s = "123(45)678"
finalist = []
tempstring = ''
for e in s:
    if e!='(' and e!=')':
        tempstring+=e
    else:
        finalist.append(tempstring)
        finalist.append(e)
        tempstring=''
finalist.append(tempstring)
print(finalist)