說我有以下的正則表達式:在python的正則表達式重複次數
"GGAGG.{5,13}?(ATG|GTG|TTG)(...)+?(TGA|TAA|TAG)"
有沒有辦法,看看有多少重複被用做了部分{5,13}? 想知道GGAGG和起始密碼子有多遠。我可以稍後手動搜索它,但想知道在原始正則表達式中是否有更好的方法。
說我有以下的正則表達式:在python的正則表達式重複次數
"GGAGG.{5,13}?(ATG|GTG|TTG)(...)+?(TGA|TAA|TAG)"
有沒有辦法,看看有多少重複被用做了部分{5,13}? 想知道GGAGG和起始密碼子有多遠。我可以稍後手動搜索它,但想知道在原始正則表達式中是否有更好的方法。
你可以做
"GGAGG(.{5,13}?)(ATG|GTG|TTG)(...)+?(TGA|TAA|TAG)"
,然後使用像
rem = re.match(pat, s)
dist_between_ggagg_and_start_codon = len(rem.group(1))
要小心,這裏的問號並不意味着可選,而是讓前面的量詞不情願。 –
相信我在你評論的同一時間解決了這個問題。 – desfido
代碼你可以使用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
是的。如果您提供樣本輸入和預期輸出,則其他人可以向您展示我相信的內容。 –
您可以簡單地將'。{5,13}?'放入捕獲組,並使用'len()'函數獲取長度。 –