说我有以下正则表达式:
"GGAGG.{5,13}?(ATG|GTG|TTG)(...)+?(TGA|TAA|TAG)"
有没有办法看到该部件正在进行多少次重复。{5,13}? 想知道GGAGG和起始密码子之间有多远。我可以稍后手动搜索它,但想知道原始正则表达式中是否有更好的方法。
答案 0 :(得分:2)
你可以做到
"GGAGG(.{5,13}?)(ATG|GTG|TTG)(...)+?(TGA|TAA|TAG)"
然后使用像
这样的代码rem = re.match(pat, s)
dist_between_ggagg_and_start_codon = len(rem.group(1))
答案 1 :(得分:0)
您可以使用match.start
方法获取整个比赛或组的位置。使用该信息:
>>> import re
>>> seq = 'xxxxGGAGGxxxxxxxATGxxxTGA'
>>> pattern = "GGAGG.{5,13}?(ATG|GTG|TTG)(...)+?(TGA|TAA|TAG)"
>>> match = re.search(pattern, seq)
>>> match.start(1) - match.start() - 5 # 5 = len(GGAGG)
7