› Spec
CPU: Apple M1 or Intel i5
RAM: 8GB
Storage: 256GB SSD
OS: macOS or Windows 11
Python: 3.11.5 and 3.8.7
Python_venv_path: Only /desktop/[folder]
IDE: Visual Studio Code
› Home › About › Categories › Guestbook

Categories : SQL

SQL 예시 - (10) 정규표현식 (feat. REGEXP)


  1. SQL 정규표현식 예시
    1. 1. 위치 지정자 (Anchors)
    2. 2. 반복 연산자 (Quantifiers)
    3. 3. 그룹 및 OR 연산 (Group & OR)
    4. 4. 문자 클래스 (Character Classes)
    5. 5. 공백 및 특수문자
    6. 6. 탈출 문자 (Escape Character)

SQL 정규표현식 예시

기호설명예제의미
^문자열의 시작^amdinadmin 으로 시작하는 문자열
$문자열의 끝amdin$admin 으로 끝나는 문자열
+1회 이상 반복a+a 가 한번 이상 반복
*0회 이상 반복a*a가 없거나 여러 번 반복
?있을수도, 없을수도a?a가 최대 1번 등장
{n}정확히 n번 반복a{3}aaa처럼 a가 정확히 3번 등장
{n,}최소 n번 이상 반복a{2,}aa 이상 등장
{n,m}n ~ m번 반복a{2,4}aa, aaa, aaaa 중 하나
\|ORa\|ba or b
()그룹화 (우선순위 지정)(ab)+ab가 1회 이상 반복
.임의의 문자 (한 글자)a.b'a' + (아무 글자) + 'b'
[]문자 집합[aeiou]모음 중 하나 포함
[^]제외 (NOT)[^0-9]숫자가 아닌 문자 포함
\s공백 (스페이스, 탭, 개행)\s공백 포함
\S공백이 아닌 문자\S공백 제외한 문자 포함
\d숫자 ([0-9]와 동일)\d숫자 포함
\D숫자가 아닌 문자\D숫자가 아닌 문자 포함
\w영문자, 숫자, _ ([A-Za-z0-9_])\w영문자, 숫자 포함
\W영문자, 숫자, _ 아닌 것\W특수문자 포함
\\\\.. 문자 그대로 사용\\.com$.com으로 끝나는 문자열 찾기
\\\\(( 문자 그대로 사용\\(test\\)(test) 포함된 문자열 찾기
\\\\\\\ 문자 그대로 사용\\\백슬래시 포함된 문자열 찾기


1. 위치 지정자 (Anchors)

기호설명예제의미
^문자열의 시작‘^amdin’admin 으로 시작하는 문자열
$문자열의 끝‘amdin$’admin 으로 끝나는 문자열
SELECT * FROM users WHERE username REGEXP '^admin';
SELECT * FROM users WHERE username REGEXP 'admin$';


2. 반복 연산자 (Quantifiers)

기호설명예제의미
+1회 이상 반복a+a 가 한번 이상 반복
*0회 이상 반복a*a가 없거나 여러 번 반복
?있을수도, 없을수도a?a가 최대 1번 등장
{n}정확히 n번 반복a{3}aaa처럼 a가 정확히 3번 등장
{n,}최소 n번 이상 반복a{2,}aa 이상 등장
{n,m}n ~ m번 반복a{2,4}aa, aaa, aaaa 중 하나
SELECT * FROM users WHERE username REGEXP 'a+'; -- 'a'가 한 번 이상 포함된 사용자 찾기
SELECT * FROM users WHERE username REGEXP '^a{2,4}'; -- 'a'가 2~4번 반복되는 사용자 찾기


3. 그룹 및 OR 연산 (Group & OR)

기호설명예제의미
\|ORa\|ba or b
()그룹화 (우선순위 지정)(ab)+ab가 1회 이상 반복
SELECT * FROM products WHERE category REGEXP 'a|b'; -- 'a' 또는 'b' 포함
SELECT * FROM words WHERE word REGEXP '(abc)+'; -- 'abc'가 반복되는 단어 찾기


4. 문자 클래스 (Character Classes)

기호설명예제의미
.임의의 문자 (한 글자)a.b'a' + (아무 글자) + 'b'
[]문자 집합[aeiou]모음 중 하나 포함
[^]제외 (NOT)[^0-9]숫자가 아닌 문자 포함
SELECT * FROM words WHERE word REGEXP 'c.t'; -- 'cat', 'cut', 'cot' 등 찾기
SELECT * FROM users WHERE username REGEXP '^[A-Za-z]+$'; -- 영어 알파벳만 포함된 사용자 찾기
SELECT * FROM messages WHERE content REGEXP '[^A-Za-z0-9]'; -- 특수문자가 포함된 메시지 찾기


5. 공백 및 특수문자

기호설명예제의미
\s공백 (스페이스, 탭, 개행)\s공백 포함
\S공백이 아닌 문자\S공백 제외한 문자 포함
\d숫자 ([0-9]와 동일)\d숫자 포함
\D숫자가 아닌 문자\D숫자가 아닌 문자 포함
\w영문자, 숫자, _ ([A-Za-z0-9_])\w영문자, 숫자 포함
\W영문자, 숫자, _ 아닌 것\W특수문자 포함
SELECT * FROM users WHERE username REGEXP '\\s'; -- 공백이 포함된 사용자 찾기
SELECT * FROM orders WHERE order_id REGEXP '^\\d{6}$'; -- 정확히 6자리 숫자인 주문번호 찾기
SELECT * FROM messages WHERE content REGEXP '\\W'; -- 특수문자가 포함된 메시지 찾기


6. 탈출 문자 (Escape Character)

기호설명예제의미
\\\\.. 문자 그대로 사용\\.com$.com으로 끝나는 문자열 찾기
\\\\(( 문자 그대로 사용\\(test\\)(test) 포함된 문자열 찾기
\\\\\\\ 문자 그대로 사용\\\백슬래시 포함된 문자열 찾기
SELECT * FROM websites WHERE url REGEXP '\\.com$'; -- '.com'으로 끝나는 도메인 찾기
SELECT * FROM messages WHERE content REGEXP '\\(test\\)'; -- '(test)'가 포함된 메시지 찾기




확대 이미지