Search

문자열 쪼개기, 문자열로부터 숫자만 추출하기 feat.정규표현식

LEFT, RIGHT 함수를 통해 문자열 인덱스까지의 원소를 확인할 수 있다.
dsfdsfdshfkjdsh1234, dsfdsfdshfkjdsh12 과 같은 문자열이 주어집니다.
REGEXP_REPLACE 함수를 사용하여 문자열의 마지막 부분에서 숫자를 제외한 모든 문자를 제거하고, 그 결과의 길이를 계산하여 뒤에 있는 숫자의 갯수를 구합니다.
SELECT LENGTH(REGEXP_REPLACE('dsfdsfdshfkjdsh1234', '[^0-9]*$','')) as count FROM TABLE;
Python
복사
문자열 뒤에 숫자가 4개 이하일때 0으로 채워주는 쿼리
SELECT CONCAT('dsfdsfdshfkjdsh', LPAD( COALESCE( REGEXP_REPLACE('dsfdsfdshfkjdsh12', '[^0-9]*$',''), '0000'), 4, '0')) as new_string FROM TABLE;
Python
복사
LPAD, RPAD : 특정 문자로 자릿수 채우기
LPAD는 왼쪽부터 특정 문자로 자릿수를 채우는 함수고 RPAD는 오른쪽부터 특정 문자로 자릿수를 채우는 함수입니다. 리포트나 프로그래밍에서 데이터 값의 자릿수를 맞추어야 할 때 유용합니다.
예제) employees 테이블에서 first_name에 대해 12자리의 문자열 자리를 만들되 first_name의 데이터 값이 12자리보다 작으면 왼쪽에서부터 *를 채워서 출력하세요.
SELECT first_name, LPAD(first_name, 12, '*') FROM employees;
Python
복사
SELECT CONCAT( REGEXP_REPLACE('dsfdsfdshfkjdsh12', '[0-9]*',''), LPAD( COALESCE( REGEXP_REPLACE('dsfdsfdshfkjdsh12', '[^0-9]*',''), '0000'), 4, '0') ) as new_string FROM TABLE;
Python
복사
정규표현식
abc… Letters 123… Digits \d Any Digit \D Any Non-digit character . Any Character \. Period [abc] Only a, b, or c [^abc] Not a, b, nor c [a-z] Characters a to z [0-9] Numbers 0 to 9 \w Any Alphanumeric character \W Any Non-alphanumeric character {m} m Repetitions {m,n} m to n Repetitions * Zero or more repetitions + One or more repetitions ? Optional character \s Any Whitespace \S Any Non-whitespace character ^…$ Starts and ends () Capture Group (a(bc)) Capture Sub-group (.*) Capture all (abc|def) Matches abc or def
Python
복사
SQL 정규 표현식
SELECT DISTINCT city FROM station WHERE city REGEXP '^[aeiou]'
Python
복사