Back-end/DataBase

[MYSQL] REGEXP란? 정규표현식 / 무료테스트사이트

cheersHena 2022. 12. 21. 19:16
반응형

정규표현식이란 

특정 규칙을 가진 문자열의 집합을 표현하는 형식언어이다. 

문자열이 가진 규칙을 파악하여 해당 규칙을 만족하는 문자열만 추출할 수 있다. 

검색, 필터링, 치환 등에 사용된다.

mySQL에서는 REGEXP(Regular Expression)이라는 키워드로 정규표현식을 사용함. 

 

REGEXP

SELECT 컬럼명
FROM 테이블명 WHERE 컬럼명 REGEXP '정규표현식';

 

정규표현식 기본 문법(일부) 

^ : 문자열의 시작

$ : 문자열의 끝

[aeiou] : aeiou 중 하나 

^[aeiou] : aeiou중 하나로 시작하는 문자 

^[aeiou].*  :  aeiou중 하나로 시작하는 문자열 

[aeiou]$ : aeiou중 하나로 끝나는 문자

.*[aeiou]$ :  aeiou중 하나로 끝나는 문자열 

[a-z]: a-z까지의 모든 문자 

[^aeiou] : ^가 []안의 문자열 앞에 존재할때는 부정을 의미. 즉, aeiou가 아닌.

 

 

예제문제 ) 

Q. Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels. Your result cannot contain duplicates.

> 도시의 끝이름이 aeiou 모음으로 시작하지 않거나, 끝나지 않는 데이터. 중복 불가. 

 

풀이) 

SELECT DISTINCT city 
FROM station 
WHERE city REGEXP '^[^aeiou].*'  -- 시작하는 문자열이 아니거나 
OR city REGEXP '.*[^aeiou]$'	-- 끝나는 문자열이 아닐때.

풀이2) 또는 NOT을 사용해주어도 같은 결과가 나옴.

 

SELECT DISTINCT city 
FROM station 
WHERE city NOT REGEXP '^[aeiou].*'  -- 시작하는 문자열이 아니거나 
OR city NOT REGEXP '.*[aeiou]$'	-- 끝나는 문자열이 아닐때.

 

 

 

 

*SQL 정규표현식을 테스트할 수 있는 사이트 

https://regexone.com/

 

RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs

Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or even documents. And while there is a lot of theory behind formal languages, the following lessons and examples will explore the more prac

regexone.com

 

반응형

'Back-end > DataBase' 카테고리의 다른 글

[SQL] 테이블 병합 MARGE  (0) 2023.01.10
[DBMS] Orange 단축키 정리  (0) 2022.03.02
[ORACLE] NVL 함수란? 쿼리 널처리  (3) 2022.03.02
[SQL] WITH 절이란?  (0) 2022.02.04
[DB2] WITH UR 이란?  (0) 2021.11.16