Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 정규식에서 원시 문자열(raw string) 표기법이란 무엇일까?

원시 문자열(Raw String) 표기법

파이썬 공식 문서에 따르면, 원시 문자열 표기법(r"text")은 정규식을 그 의미 그대로 유지하면서 혼란 없이 작성할 수 있도록 도와주는 방법입니다. 이 표기법을 사용하지 않으면 정규식 안의 모든 백슬래시('\') 앞에 이스케이프용 백슬래시를 하나 더 붙여야 합니다. 예를 들어 아래 두 코드는 기능적으로 완전히 동일합니다.

>>> re.match(r"\W(.)\1\W", " ff ")
<_sre.SRE_Match object; span=(0, 4), match=' ff '>
>>> re.match("\\W(.)\\1\\W", " ff ")
<_sre.SRE_Match object; span=(0, 4), match=' ff '>

정규식에서 리터럴 백슬래시(문자 그대로의 '\')를 매칭하려면 정규식 내부에서 해당 백슬래시를 반드시 이스케이프 처리해야 합니다. 원시 문자열 표기법을 사용하면 r"\\"처럼 간단하게 작성할 수 있습니다. 반면 원시 문자열 표기법 없이 일반 문자열로 작성하려면 "\\\\"처럼 백슬래시를 네 개나 써야 하므로 가독성이 크게 떨어집니다. 다음 두 코드 역시 기능적으로 동일한 결과를 반환합니다.

>>> re.match(r"\\", r"\\")
<_sre.SRE_Match object; span=(0, 1), match='\\'>
>>> re.match("\\\\\\\\", r"\\")
<_sre.SRE_Match object; span=(0, 1), match='\\'>

결론적으로, 파이썬에서 정규식을 작성할 때는 원시 문자열(r"...") 표기법을 사용하는 것이 좋습니다. 불필요한 이스케이프 처리를 줄여 코드가 더 짧고 읽기 쉬워지며, 백슬래시 관련 오류를 예방할 수 있기 때문입니다.