2017-12-29 2 views
0

내가 같은 문자열을 말해봐 .파이썬 사용자 정의 함수 내에서 정규 표현식에 매개 변수를 전달하는 방법은 무엇입니까?</p> <p>'TTATGACGTTATTCTACTTTGATTGTGCGAGACAATGCTACCTTACCGGTCGGAACTCGATCGGTTGAACTCTATCACGCCTGGTCTTCGAAGTTAGCA'</p> <p>내가 3 개 항목 (예를 들어 예를 들어, TTA 또는 GTT)의 인스턴스를 찾습니다 re.findall 같은 정규 표현식을 사용하고 싶습니다 :

가능한 경우 사용자 정의 함수에 하위 문자열을 전달할 수 있습니까? 내가 'TTA'와 같은 코돈에 대한 몇 가지 입력을 사용하여 위의 준 내 캐릭터에이 함수를 호출 할 때, 모두가 내가으로 얻을

def finder(sequence, codons): 
    Y = re.findall(r'codons',sequence) 
    return Y 

그러나 : 내가 뭘하려

은 다음과 같이이었다 반환은 빈 목록입니다 ...

내 함수의 정규 표현식 내에서 "코돈"이 r 옆에 따옴표 안에 있기 때문에 목록이 비어 있다고 생각합니다. 이것을 우회하는 방식으로 정규식에 무언가를 전달할 수있는 방법이 있습니까?

+2

'codons'에서 따옴표를 제거하십시오. 'sequence'와 같은 변수의 이름입니다. –

+1

왜 정규식을 사용하고 계십니까? –

+0

'sequence'에 사용하는 입력 샘플을 제공해주세요. –

답변

2

변수 매개 변수가 아닌 "codons" 문자열을 일치 시키려고합니다. 이 시도 :

def finder(sequence, codons): 
    return re.findall(codons, sequence) 
2

질문의 광택 대답 (3+ 파이썬 사용) :

# codon_search.py 
import re 

def finder(codon, fullseq): 
    matched = re.findall(codon, fullseq) 
    print (matched) 

sequence = "TTATGACGTTATTCTACTTTGATTGTGCGAGACAATGCTACCTTACCGGTCGGAAC" 
search_str = "TTA" 

#call function 
finder(search_str, sequence) 

출력 : 3 경기는 위의 순서에서 찾을 수

['TTA', 'TTA', 'TTA']