웹사이트 검색

파이썬 원시 문자열을 사용하는 방법


소개

문자열 리터럴에 r 또는 R을 접두사로 붙여 Python에서 원시 문자열을 만들 수 있습니다. Python 원시 문자열은 백슬래시 문자(\\)를 리터럴 문자로 취급합니다. 원시 문자열은 정규식이나 Windows 디렉터리 경로와 같이 문자열에 백슬래시를 포함해야 하고 이스케이프 문자로 취급하지 않으려는 경우에 유용합니다. 이 문서에서는 Python 원시 문자열이 작동하는 방식에 대한 기본 사항을 다루고 원시 문자열을 사용하여 문자열에 특수 문자를 포함하는 방법에 대한 몇 가지 일반적인 예를 제공합니다.

이 문서의 예제에서는 명령줄에서 Python 대화형 콘솔을 사용하여 다양한 원시 문자열 시나리오를 보여줍니다.

원시 문자열을 사용하여 문자열에 개행 문자 포함

이 예에서는 값이 있는 문자열을 사용합니다. Hi\n안녕하세요. 이 값을 일반 문자열에 할당하려고 하면 개행 문자(\n) 새 줄을 만듭니다.

  1. s = 'Hi\nHello'

문자열을 인쇄합니다.

  1. print(s)

출력은 다음과 같습니다.

Hi
Hello

출력은 개행 문자로 인해 새 행이 생성됨을 보여줍니다.

문자열에 개행 문자를 포함하려면 문자열 변수에 r 또는 R 접두사를 붙여 원시 문자열을 만듭니다.

  1. raw_s = r'Hi\nHello'

문자열을 인쇄합니다.

  1. print(raw_s)

출력은 다음과 같습니다.

Hi\nHello

출력에는 개행 문자가 포함됩니다.

원시 문자열을 사용하여 문자열에 이중 백슬래시 문자 포함

호스트 이름 경로와 같은 이중 백슬래시 문자를 일반 문자열에 포함하려고 하면 컴파일러에서 백슬래시를 이스케이프 표시기로 간주하기 때문에 첫 번째 백슬래시 문자가 인쇄되지 않습니다.

예를 들어 경로를 포함하는 문자열을 생성합니다.

  1. s = '\\examplehost\digitalocean\content\'

문자열을 인쇄합니다.

  1. print(s)

출력은 다음과 같습니다.

\examplehost\digitalocean\content\

출력은 첫 번째 백슬래시 문자가 문자열에 포함되어 있지 않음을 보여줍니다.

문자열에 백슬래시 문자를 모두 포함하려면 문자열 변수에 r 또는 R 접두사를 붙여 원시 문자열을 만듭니다.

  1. s = r'\\examplehost\digitalocean\content\'

문자열을 인쇄합니다.

  1. print(s)

출력은 다음과 같습니다.

\\examplehost\digitalocean\content\

출력에는 두 백슬래시 문자가 모두 포함됩니다.

원시 문자열의 따옴표 및 백슬래시 문자 문제 해결

원시 문자열에서 따옴표는 여전히 단일 백슬래시 문자로 이스케이프될 수 있지만 백슬래시 문자는 결과 원시 문자열에 남아 있습니다.

또한 원시 문자열은 홀수의 백슬래시 문자로 끝날 수 없습니다. 이 기능으로 인해 단일 백슬래시 문자를 포함하는 원시 문자열을 생성할 수 없으므로 r\/\는 유효하지 않은 문자열입니다.

잘못된 원시 문자열 예

이 예에서는 백슬래시 문자로 이스케이프되어 unterminated string literal 오류가 발생하므로 끝 따옴표가 출력에서 누락되었습니다.

r'\'

이 예에서 처음 두 개의 백슬래시는 서로 이스케이프되고 세 번째 백슬래시는 끝 따옴표를 이스케이프하려고 시도하여 unterminated string literal 오류가 발생합니다.

r'ab"'

유효한 원시 문자열 예

다음은 따옴표와 백슬래시 문자를 포함하는 유효한 원시 문자열의 몇 가지 예입니다.

따옴표를 이스케이프 처리하는 원시 문자열을 만듭니다.

  1. s = r"\"\""

문자열을 인쇄합니다.

  1. print(s)

출력은 다음과 같습니다.

\"\"

출력은 문자열이 종료되지 않도록 백슬래시 문자가 따옴표를 이스케이프하지만 백슬래시 문자는 결과 문자열에 남아 있음을 보여줍니다.

백슬래시 문자가 짝수인 원시 문자열을 만듭니다.

  1. s = R'ab\\'

문자열을 인쇄합니다.

  1. print(s)

출력은 다음과 같습니다.

ab\\

결과 문자열에 짝수 개의 백슬래시 문자가 포함되어 있음이 출력에 표시됩니다.

결론

이 기사에서는 Python에서 원시 문자열의 기본 사항을 배웠습니다. Python 문자열에 대한 학습을 계속하십시오.