如何根据子字符串中包含的字符将字符串拆分为子字符串。例如,给定一个字符串 "ABC12345..::",我想得到一个列表,如 ['ABC', '12345', '..::']。我知道每个子字符串的有效字符,但不知道长度。所以字符串也可能看起来像 "CC123:....:",在这种情况下我希望有 ['CC', '123', ':.... :'] 作为结果。
请您参考如下方法:
根据你的例子,你似乎没有任何东西可以分割(例如,C 和 1 之间没有任何东西),但你所拥有的是一个格式良好的您可以匹配的模式。因此,只需简单地创建一个模式,将您想要匹配的字符串分组:
>>> import re
>>> s = "ABC12345..::"
>>> re.match('([A-Z]*)([0-9]*)([\.:]*)', s).groups()
('ABC', '12345', '..::')
或者,将模式编译成可重用的正则表达式对象并执行此操作:
>>> patt = re.compile('([A-Z]*)([0-9]*)([\.:]*)')
>>> patt.match(s).groups()
('ABC', '12345', '..::')
>>> patt.match("CC123:....:").groups()
('CC', '123', ':....:')
