답변:
이 re.escape()
기능을 사용하십시오 .
탈출 (문자열)
영숫자가 아닌 모든 문자가 백 슬래시 인 문자열을 반환합니다. 정규 표현식 메타 문자가있는 임의의 리터럴 문자열을 일치시키려는 경우에 유용합니다.
간단한 예를 들어, 제공된 문자열의 발생을 선택적으로 선택적으로 's'다음에 검색하고 일치 오브젝트를 리턴합니다.
def simplistic_plural(word, text):
word_or_plural = re.escape(word) + 's?'
return re.match(word_or_plural, text)
re.escape () 사용할 수 있습니다 :
re.escape (string) 영숫자가 아닌 모든 문자가 백 슬래시 인 문자열을 반환합니다. 정규 표현식 메타 문자가있는 임의의 리터럴 문자열을 일치시키려는 경우에 유용합니다.
>>> import re
>>> re.escape('^a.*$')
'\\^a\\.\\*\\$'
불행히도 re.escape()
교체 문자열에는 적합하지 않습니다.
>>> re.sub('a', re.escape('_'), 'aa')
'\\_\\_'
해결책은 교체품을 람다에 넣는 것입니다.
>>> re.sub('a', lambda _: '_', 'aa')
'__'
람다의 반환 값은 re.sub()
리터럴 문자열로 처리되기 때문 입니다.
repl
인수는 단순한 문자열이 아닙니다. 파싱됩니다. 예를 들어, not re.sub(r'(.)', r'\1', 'X')
이 반환됩니다 . X
\1
시도하십시오 :
앵커로서의 \ Q 및 \ E
전체 단어 또는 정규식과 일치하도록 Or 조건을 설정하십시오.
참조 링크 : 정규식에 특수 문자가 포함 된 전체 단어를 일치시키는 방법
repl
인수re.sub
는 정규 표현식이 아닌 문자열입니다.re.escape
그것을 적용 하는 것은 처음에는 의미가 없습니다.