문자열 치환 함수
일반 문자열 함수와 문자열 검색 함수는 별도로 설명합니다.
아래 문서는 system.functions 시스템 테이블을 기반으로 생성되었습니다.
format
도입 버전: v20.1
Python의 포맷과 유사하게, 인자 목록에 있는 값(문자열, 정수 등)으로 pattern 문자열의 서식을 지정합니다.
패턴 문자열에는 중괄호 {}로 둘러싸인 치환 필드(replacement field)를 포함할 수 있습니다.
중괄호에 포함되지 않은 모든 내용은 리터럴 텍스트로 간주되며 출력에 그대로 복사됩니다.
리터럴 중괄호 문자는 두 개의 중괄호 {{, }}로 이스케이프할 수 있습니다.
필드 이름은 숫자(0부터 시작)이거나 비워 둘 수 있으며, 비워 둔 경우 순차적으로 증가하는 숫자가 암묵적으로 부여됩니다.
구문
인수
반환 값
포맷된 문자열을 반환합니다. String
예제
번호가 매겨진 플레이스홀더
암시적 번호 지정
overlay
도입된 버전: v24.9
1부터 시작하는 인덱스인 offset부터 문자열 input의 일부를 다른 문자열 replace로 대체합니다.
구문
인수
s— 입력 문자열입니다.Stringreplace— 치환 문자열입니다.const Stringoffset— 정수 타입Int(1부터 시작)입니다.offset이 음수이면 문자열s의 끝에서부터 계산합니다.Intlength— 선택 사항입니다. 정수 타입Int입니다.length는 입력 문자열s에서 치환할 부분 문자열의 길이를 지정합니다.length가 지정되지 않으면s에서 제거되는 바이트 수는replace의 길이와 같으며, 지정된 경우에는length바이트가 제거됩니다.Int
반환 값
치환이 적용된 문자열을 반환합니다. String
예시
기본 치환
길이 지정 치환
overlayUTF8
도입된 버전: v24.9
1부터 시작하는 인덱스 offset 위치에서 문자열 s의 일부를 다른 문자열 replace로 교체합니다.
문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정합니다.
이 가정이 만족되지 않더라도 예외는 발생하지 않으며, 결과는 정의되지 않습니다.
구문
인수(Arguments)
s— 입력 문자열.Stringreplace— 대체 문자열.const Stringoffset— 정수 타입Int(1부터 시작).offset이 음수이면 입력 문자열s의 끝에서부터 센 위치를 의미합니다.(U)Int*length— 선택적입니다. 입력 문자열s에서 대체할 부분 문자열의 길이를 지정합니다.length가 지정되지 않으면s에서 제거되는 문자 수는replace의 길이와 같으며, 지정된 경우에는length개의 문자가 제거됩니다.(U)Int*
반환값(Returned value)
대체가 적용된 문자열을 반환합니다. String
예시(Examples)
UTF-8 대체
printf
도입 버전: v24.8
printf 함수는 C++의 printf 함수와 유사하게, 인수로 나열된 값(문자열, 정수, 부동소수점 등)을 사용해 지정된 문자열을 서식화합니다.
서식 문자열에는 % 문자로 시작하는 서식 지정자를 포함할 수 있습니다.
%와 그 뒤에 오는 서식 지정자에 포함되지 않은 모든 내용은 리터럴 텍스트로 간주되며, 출력에 그대로 복사됩니다.
리터럴 % 문자는 %%로 이스케이프할 수 있습니다.
구문
인수
반환 값
형식이 적용된 문자열을 반환합니다. String
예시
C++ 스타일 형식 지정
regexpQuoteMeta
도입된 버전: v20.1
정규식에서 특별한 의미를 가지는 다음 문자 앞에 역슬래시를 추가합니다: \0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -.
이 구현은 re2::RE2::QuoteMeta와 약간 다릅니다.
널 바이트를 \x00이 아닌 \0로 이스케이프하며, 필요한 문자만 이스케이프합니다.
구문
인수
s— 정규식에서 이스케이프 처리해야 하는 문자를 포함하는 입력 문자열입니다.String
반환 값
정규식 특수 문자가 이스케이프 처리된 문자열을 반환합니다. String
예시
정규식 특수 문자 이스케이프하기
replaceAll
도입 버전: v1.1
haystack 문자열에서 부분 문자열 pattern이 나타나는 모든 부분을 문자열 replacement로 교체합니다.
구문
별칭(Aliases): replace
인자(Arguments)
haystack— 검색할 입력 문자열입니다.Stringpattern— 찾아서 교체할 부분 문자열입니다.const Stringreplacement—pattern을 대체할 문자열입니다.const String
반환 값(Returned value)
pattern이 나타나는 모든 부분이 교체된 문자열을 반환합니다. String
예시(Examples)
모든 패턴 교체(Replace all occurrences)
replaceOne
도입 버전: v1.1
haystack에서 부분 문자열 pattern이 처음으로 나타나는 한 곳을 문자열 replacement로 대체합니다.
구문
인수
haystack— 검색할 입력 문자열입니다.Stringpattern— 찾아서 치환할 부분 문자열입니다.const Stringreplacement—pattern을 대체할 문자열입니다.const String
반환 값
pattern이 처음으로 등장한 부분이 대체된 문자열을 반환합니다. String
예시
첫 번째 등장 부분 치환
replaceRegexpAll
도입 버전: v1.1
replaceRegexpOne과 유사하지만, 패턴이 나타나는 모든 위치를 치환합니다.
예외적으로, 정규 표현식이 빈 하위 문자열에 일치하는 경우에는 치환이 한 번만 수행됩니다.
구문
별칭: REGEXP_REPLACE
인수
haystack— 검색할 입력 문자열입니다.Stringpattern— 찾을 정규 표현식 패턴입니다.const Stringreplacement— 패턴을 치환할 문자열로, 치환(substitution)을 포함할 수 있습니다.const String
반환 값
정규 표현식과 일치하는 모든 부분이 치환된 문자열을 반환합니다. String
예시
모든 문자를 두 번 반복한 문자로 치환
빈 부분 문자열 치환 예제
replaceRegexpOne
도입 버전: v1.1
정규식 pattern(re2 구문 사용)과 일치하는 부분 문자열 중 첫 번째로 등장하는 것을 haystack에서 찾아 replacement 문자열로 대체합니다.
replacement에는 \0-\9 치환을 포함할 수 있습니다.
치환 \1-\9는 첫 번째부터 아홉 번째까지의 캡처 그룹(서브매치)에 해당하고, 치환 \0은 전체 매치에 해당합니다.
pattern 또는 replacement 문자열에서 문자 그대로의 \ 문자를 사용하려면 \로 이스케이프해야 합니다.
또한 문자열 리터럴에는 추가 이스케이프가 필요함을 유의하십시오.
구문
인수
haystack— 검색할 입력 문자열입니다.Stringpattern— 검색할 정규 표현식 패턴입니다.const Stringreplacement— 패턴을 대체할 문자열로, 치환을 포함할 수 있습니다.const String
반환 값
첫 번째 정규 표현식 일치 항목을 치환한 문자열을 반환합니다. String
예시
ISO 날짜를 미국 형식으로 변환하기
문자열을 10번 반복하기
translate
도입: v22.7
문자열 s에서 from 및 to 문자열로 정의된 1:1 문자 매핑을 사용하여 문자를 치환합니다.
from과 to는 상수 ASCII 문자열이어야 합니다.
from과 to의 길이가 같다면, s 안에 있는 from의 첫 번째 문자가 나타날 때마다 to의 첫 번째 문자로, 두 번째 문자가 나타날 때마다 to의 두 번째 문자로 치환되는 방식으로 적용됩니다.
from에 to보다 더 많은 문자가 포함되어 있으면, to에 대응 문자가 없는 from 끝부분의 문자들은 s에서 모두 삭제됩니다.
s에 있는 ASCII가 아닌 문자는 이 함수에 의해 변경되지 않습니다.
구문
인수
s— 변환할 입력 문자열입니다.Stringfrom— 교체할 문자가 포함된 상수 ASCII 문자열입니다.const Stringto— 교체할 문자로 사용할 문자가 포함된 상수 ASCII 문자열입니다.const String
반환 값
문자 치환이 적용된 문자열을 반환합니다. String
예시
문자 매핑
길이가 서로 다른 경우
translateUTF8
도입된 버전: v22.7
translate와 유사하지만, s, from, to가 UTF-8로 인코딩된 문자열이라고 가정합니다.
구문
인수
s— 변환할 UTF-8 입력 문자열입니다.Stringfrom— 치환할 문자를 포함하는 상수 UTF-8 문자열입니다.const Stringto— 치환 문자들을 포함하는 상수 UTF-8 문자열입니다.const String
반환 값
String 데이터 타입 값을 반환합니다. String
예시
UTF-8 문자 치환