2012-03-08 4 views
6

के साथ पायथन नियमित अभिव्यक्ति अनुक्रम 'टीएए' (3 अक्षरों के तीन गुना) 'टीएए' की खोज के लिए आरई के साथ संघर्ष कर रही है।कोडन

re.findall('TAA...+?TAA',seq) निश्चित रूप से जो नहीं देता तीनो लेकिन मुझे

re.findall('TAA([ATGC]{3})+?TAA' , seq) लेकिन मुझे उत्पादन

'AGG', 'TCT', 'GTG', 'TGG', 'TGA', 'TAT', 

कोई भी विचार के रूप में एक सूची प्रदान करती अनुक्रम देता है:

मैं निम्नलिखित की कोशिश की? निश्चित रूप से मैं के रूप में से

re.findall('TAA...+?TAA',seq)

उत्पादन देख सकते हैं कि लंबाई% 3 == 0, लेकिन यह कैसे आरई के साथ क्या करना?

+0

TAA TAA TAA एक वैध कब्जा (TAA मौका भी 3 अक्षरों के बीच त्रिक से बाहर किया जा रहा है) है? –

उत्तर

4

आप एक गैर-कैप्चरिंग समूह चाहते हैं।

(?:...)

नियमित कोष्ठक की एक गैर पर कब्जा संस्करण। मिलान करता है जो भी नियमित अभिव्यक्ति कोष्ठक के अंदर है, लेकिन समूह द्वारा मिलान किया गया सबस्ट्रिंग एक मैच करने के बाद या पैटर्न में बाद में संदर्भित करने के बाद पुनर्प्राप्त नहीं किया जा सकता है।

इस प्रयास करें:

re.findall('TAA(?:[ATGC]{3})+?TAA' , seq) 
+0

क्या यह पहले या आखिरी मुठभेड़ के रूप में टीएए टैग टीजीए के साथ गठबंधन करने का विचार था ?? – Jasper

+0

दूसरों के लिए उपयोग करने के लिए स्वयं को हल करें: re.findall ('(?: टीएए | टैग | टीजीए) (?: [एटीजीसी] {3}) +? (?: टीएए | टैग | टीजीए)', सीईसी) – Jasper

संबंधित मुद्दे