如何用正则表达式分割以下字符串

如何用正则表达式分割以下字符串

41:001::000016:CT:CARTONS:tel?:05328266:334600.0::00416.000'
分割后的效果
[41]
[001]
[]
[000016]
[CT]
[CARTONS]
[tel?:05328266]
[334600.0]
[]
[00416.000]'

我有以上这个字符串,想用正则将期分开,其中分割的条件是:,如果前面有?,是不分割,如ct:tel?:0532:how:address:,tel-?:0532不做分割处理,谢谢
1 把?:先替换成别的字符,用:分割,完了再替换回来
2 先用:分割,再连接


[Copy to clipboard] [ - ]
CODE:
>>> a='41:001::000016:CT:CARTONS:tel?:05328266:334600.0::00416.000'
>>> import re
>>> re.split(':', a)
['41', '001', '', '000016', 'CT', 'CARTONS', 'tel?', '05328266', '334600.0', '', '00416.000']
>>> re.split('(?<!\?):', a)
['41', '001', '', '000016', 'CT', 'CARTONS', 'tel?:05328266', '334600.0', '', '00416.000']



QUOTE:
原帖由 limodou 于 2007-12-6 13:48 发表

>>> a='41:001::000016:CT:CARTONS:tel?:05328266:334600.0::00416.000'
>>> import re
>>> re.split(':', a)
['41', '001', '', '000016', 'CT', 'CARTONS', 'tel?', '05328266', '334600.0', '', '00416 ...

谢谢Limodou