我们假设我有这个字符串:
s = "123(45)678"
我怎样才能获得此列表?
l = ['123','(','45',')','678']
答案 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)