⚙️ backend/🛢️ database

[MySQL] REGEXP 함수를 이용하여 숫자 또는 문자만 추출하기

dev!n 2023. 3. 2. 23:03
Extracting Numbers or Non-Numeric Characters with MySQL.

MySQL의 REGEXP 함수를 사용하여 문자열에서 숫자를 추출할 수 있습니다.

# 쿼리 예시
SELECT REGEXP_REPLACE('abc123def456ghi789', '[^0-9]+', '') AS numbers;

param1) 입력 문자열

param2) [^0-9]+ : 숫자가 아닌 모든 문자와 일치하는 정규식

param3) 입력 문자열에서 숫자가 아닌 모든 문자를 대체하는 빈 문자열

# 결과
'123456789'

반대로 정규식 [0-9]+으로 숫자만 추출할 수 있습니다.

MySQL에서 REGEXP_REPLACE 함수를 사용하여 문자열에서 모든 숫자를 제거하고 숫자가 아닌 문자만 가져올 수 있습니다.

# 쿼리 예시
SELECT REGEXP_REPLACE('abc123def456ghi789', '[0-9]+', '') AS letters;

param1) 입력 문자열

param2) 하나 이상의 숫자 시퀸스와 일치하는 정규식 [0-9]+

param3) 입력 문자열의 모든 숫자 시퀀스를 대체하는 데 사용

# 결과
'abcdefghi'

추출하려는 숫자가 아닌 문자의 특정 패턴과 일치하도록 정규식을 수정할 수 있습니다. 예를 들어 대문자만 추출하려는 경우 정규식 [A-Z]+를 사용할 수 있습니다. 소문자도 포함하려면 정규식 [a-zA-Z]+를 사용하면 됩니다.