Python正则表达式-在每个字符后拆分字符串

Python正则表达式-在每个字符后拆分字符串,python,regex,python-3.x,Python,Regex,Python 3.x,我有一个字符串,它遵循的模式是a1+数字后跟一个字母,'a','b','c'。我想在每个字母后分开这条线 some_function('12a44b65c') >>> ['12a', '44b', '65c'] 到目前为止我已经试过了 re.split('([abc]\d+)', '12a44b65c') >>> ['12', 'a44', '', 'b65', 'c'] 您的正则表达式是向后的-它应该是任意位数,后跟a、b或c。此外,我不会使用spli

我有一个字符串,它遵循的模式是a
1+
数字后跟一个字母,
'a','b','c'
。我想在每个字母后分开这条线

some_function('12a44b65c')
>>> ['12a', '44b', '65c']

到目前为止我已经试过了

re.split('([abc]\d+)', '12a44b65c')
>>> ['12', 'a44', '', 'b65', 'c']

您的正则表达式是向后的-它应该是任意位数,后跟
a
b
c
。此外,我不会使用
split
,它返回恼人的空字符串,但是:

如果您能够使用,您甚至可以在零宽度匹配上进行分割(即使用lookarounds)

将regex作为re导入

rx=r'(?V1)(?尝试交换模式:
re.findall(r'\d+[abc],'12a44b65c')
\d*也将匹配没有给定的数字。您必须使用\d+来满足1+数字的要求。此外,捕获组中不需要。
>>> re.findall('(\d+[abc])', '12a44b65c')
['12a', '44b', '65c']
import regex as re

rx = r'(?V1)(?<=[a-z])(?=\d)'
string = "12a44b65c"
parts = re.split(rx, string)
print parts
# ['12a', '44b', '65c']