python - 正则表达式从具有特定字符作为开始和结束的字符串中查找多个组合
问题描述
我正在尝试查找具有起始字符的可能字符串的匹配项:“ATG”和结束字符“TAA”或“TGA”或“TAG”。例如,如果我的字符串是:
seq = 'GATGATCGATGCTGACGTATAGGTTAAC'
我想使用正则表达式来匹配这 3 个:
match1 = 'ATGATCGATGCTGA'
match2 = 'ATGATCGATGCTGACGTATAG'
match3 = 'ATGATCGATGCTGACGTATAGGTTAA'
如果你使用第二个“ATG”也是一样的:
MATCH4 = 'ATGCTGA'
MATCH5 = 'ATGCTGACGTATAG'
MATCH6 = 'ATGCTGACGTATAGGTTAA'
到目前为止,我已经写了这个:
Frame1_ORF = re.match(\r '(^(ATG)?:(TGA|TAA|TAG)$)',Frame1)
但是我的语法或符号不正确。你能帮我找到这 6 个匹配项吗?
谢谢。
解决方案
这应该这样做:
import re
resp =[]
seq = 'G**ATG**ATCG**ATG**C**TGA**CGTA**TAG**GT**TAA**C'
while re.findall(r'(?<=ATG)(.*)(?=(TGA|TAA|TAG))',seq):
seq = re.findall(r'(?<=ATG)(.*)(?=(TGA|TAA|TAG))', seq)
resp.append("ATG"+seq[0][0]+seq[0][1])
seq="ATG"+seq[0][0]
print(resp)
推荐阅读
- php - 如何使用Laravel,php获取两个纬度和经度之间的记录
- java - 使用相同的转义和引号字符分隔 CSV
- python-3.x - 设计卷积自动编码器的问题
- quarkus - 在@ApplicationScoped bean 中注入实体管理器
- c# - 标签具有巨大的行距,导致在 wpf 中相互重叠
- python - 如何在用户输入后使用熊猫打开 .csv 文件?
- angular - 如何使用路由器更改角度路径中的路径变量,以便 dogs/1/collar 可以成为 dogs/2/collar
- asp.net - 未经用户同意继续(Azure WebApp)
- module - 如何在开发过程中设置 %?RESOURCES 键?
- elasticsearch - 从输出中删除查询短语以进行词干查询弹性搜索