正则表达帮助

drb*_*sen 2 python regex python-3.x

我试图在Python 3中创建一个正则表达式,匹配7个字符(例如> AB0012),由未知数量的字符分隔,然后匹配另外6个字符(例如aaabbb或bbbaaa).我的输入字符串可能如下所示:

>AB0012xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>CD00192aaabbblllllllllllllllllllllyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyybbbaaayyyyyyyyyyyyyyyyyyyy>ZP0199000000000000000000012mmmm3m4mmmmmmmmxxxxxxxxxxxxxxxxxaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

这是我提出的正则表达式:

matches = re.findall(r'(>.{7})(aaabbb|bbbaaa)', mystring)  
print(matches)
Run Code Online (Sandbox Code Playgroud)

我试图产生的输出看起来像这样:

[('>CD00192', 'aaabbb'), ('>CD00192', 'bbbaaa'), ('>ZP01990', 'aaabbb')]
Run Code Online (Sandbox Code Playgroud)

我阅读了Python文档,但是我找不到如何匹配正则表达式的两个部分之间的未知距离.是否有某种通配符可以让我完成我的正则表达式?在此先感谢您的帮助!

编辑:
如果我*?在我的代码中使用这样:

mystring = str(input("Paste promoters here: "))
matches = re.findall(r'(>.{7})*?(aaabbb|bbbaaa)', mystring)
print(matches)
Run Code Online (Sandbox Code Playgroud)

我的输出如下:
[('> CD00192','aaabbb'),('','bbbaaa'),('','aaabbb')]

*列表中的第二项和第三项分别缺少> CD00192和> ZP01990.如何让正则表达式在列表中包含这些字符?

gho*_*g74 5

这是一种非正则表达式方法.拆分为">"(您的数据将从第2个元素开始),然后因为您不关心这7个字符是什么,所以从第8个字符开始检查直到第14个字符.

>>> string=""" AB0012xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>CD00192aaabbblllllllllllllllllllllyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyybbbaaayyyyyyyyyyyyyyyyyyyy>ZP0199000000000000000000012mmmm3m4mmmmmmmmxxxxxxxxxxxxxxxxxaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa""" 
>>> for i in string.split(">")[1:]:
...   if i[7:13] in ["aaabbb","bbbaaa"]:
...     print ">" + i[:13]
...
>CD00192aaabbb
Run Code Online (Sandbox Code Playgroud)