Split a string with “(” and “)” and keep the delimiters (Python)
本问题已经有最佳答案,请猛点这里访问。
假设我有这个字符串:
1 | s ="123(45)678" |
我怎样才能得到这个清单?
1 | l = ['123','(','45',')','678'] |
号
如果你只对
由于您有多个分隔符并且希望保留它们,因此可以将
1 2 3 4 5 6 | import re s ="123(45)678" print(re.split(r'([()])', s)) # ['123', '(', '45', ')', '678'] |
您可以使用
1 2 3 4 | import re s ="123(45)678" final_data = re.findall('\d+|\(|\)', s) print(final_data) |
号
输出:
1 | ['123', '(', '45', ')', '678'] |
如果您不想使用
1 2 3 4 5 6 7 8 9 10 11 12 | 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) |
。