2015-11-18 297 views
-2

我要尋找以下:打印字符串

dna = '**atg**abcdefghijk**tga**aa' 

start = 'atg' 

stop = 'tag' or 'taa' or 'tga' 

我想獲得所有的啓動和停止之間的字符。我曾嘗試過:

print (dna.find(start:stop)) 

但它讓我說「:」是無效的語法。

+0

嗯,是的。這不是你稱之爲查找的方式。另外,我不認爲找到你認爲它的作用。我懷疑你想切片。 –

+1

[查找兩個子串之間的字符串]的可能重複(https://stackoverflow.com/questions/3368969/find-string-between-two-substrings) –

回答

1

你可以使用正則表達式來幫助找到合適的匹配如下:

import re 

dna = 'atgabcdefghijktgaaa' 
start = 'atg' 
stop = ['tag', 'taa', 'tga'] 

print re.findall(r'{}(.*?)(?:{})'.format(start, '|'.join(stop)), dna) 

這將顯示如下:

['abcdefghijk']