program tip

문자열 리터럴 앞에 "r"이 무엇입니까?

radiobox 2020. 8. 4. 07:37
반응형

문자열 리터럴 앞에 "r"이 무엇입니까? [복제]


처음에이 메소드가에 대한 메소드 인수로 여러 행에 정규식을 작성하는 데 사용되는 것을 보았 re.compile()으므로 rRegEx 의미 한다고 가정했습니다 .

예를 들면 다음과 같습니다.

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)

r이 경우 어떤 의미입니까? 왜 필요한가요?


이는 r문자열이 원시 문자열로 처리됨을 의미하므로 모든 이스케이프 코드가 무시됩니다.

예를 들어 :

'\n'문자는 개행 문자 r'\n'로 취급되고 문자는 \다음에 오는 문자로 취급 됩니다 n.

'r'또는 'R'접두사가 존재, 백 슬래시 다음과 같은 문자는 변화하지 않고 문자열에 포함되어 있으며 모든 백 슬래시는 문자열에 남아 있습니다. 예를 들어 문자열 리터럴 r"\n"은 백 슬래시와 소문자의 두 문자로 구성됩니다 'n'. 문자열 인용 부호는 백 슬래시로 이스케이프 할 수 있지만 백 슬래시는 문자열에 남아 있습니다. 예를 들어, r"\""두 개의 문자 : 백 슬래시와 큰 따옴표로 구성된 유효한 문자열 리터럴입니다.r"\"유효한 문자열 리터럴이 아닙니다 (원시 문자열도 홀수의 백 슬래시로 끝날 수 없음). 특히, 원시 문자열은 단일 백 슬래시로 끝날 수 없습니다 (백 슬래시는 다음 따옴표 문자를 이스케이프하므로). 또한 단일 백 슬래시와 개행 문자는 줄 연속으로가 아니라 문자열의 일부로이 두 문자로 해석됩니다.

출처 : 파이썬 문자열 리터럴


이스케이프가 번역되지 않음을 의미합니다. 예를 들면 다음과 같습니다.

r'\n'

문자 뒤에 백 슬래시가있는 문자열입니다 n. (없이는 r줄 바꿈이 될 것입니다.)

b바이트 문자열을 나타내며 문자열이 기본적으로 유니 코드 인 Python 3에서 사용됩니다. Python 2.x에서 문자열은 기본적으로 바이트 문자열이며 u유니 코드를 나타내는 데 사용 합니다.

참고 URL : https://stackoverflow.com/questions/4780088/what-does-preceding-a-string-literal-with-r-mean

반응형