Python正则表达式-在每个字符后拆分字符串
我有一个字符串,它遵循的模式是aPython正则表达式-在每个字符后拆分字符串,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
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']