2013-09-30 3 views
6

대괄호 또는 일반 문자열로 해석되지 않을 수있는 다른 문자를 포함 할 수있는 문자열을 검색하려고합니다.대괄호를 포함 할 수있는 파이썬 찾기 문자열

def findstring(string, text): 
    match = re.search(string, text) 

다른 모듈에서 파생 된 문자열을 제어하지 않습니다. 내 문제는 문자열에 "xyz"가 포함될 수 있다는 것입니다., 이는 일치하지 않는 대괄호가 있음을 알리는 오류를 발생시킵니다.

은 이미 성공없이 시도

match = re.search(r'%s' % string, text) 
+0

왜 정규식을 사용하고 있습니까? 문자열이 정규식으로되어 있다면 잘못된 정규식 (예 : 'xyz')을 오류로 처리해야합니다. 그것의 정규 표현식을지지하지 않는다면'text.find (string)'을 사용하고 regex 모듈을 완전히 건너 뜁니다. – tdelaney

+0

예 - 굉장합니다. – JohnGalt

답변

10

당신은 문자열 탈출 re.escape()를 사용할 수 백 슬래쉬가 아닌 모든 영숫자와

반환 문자열 : 워드 프로세서

match = re.search(re.escape(string), text) 

을 ; 정규식 메타 문자가 포함되어있을 수있는 임의의 리터럴 문자열과 일치시키려는 경우에 유용합니다.