‘국’이 1번 이상 등장하는 문자열을 찾음. ‘한국’, ‘미역국’, ‘국거리’ 모두 해당.
{m,n}
m회 이상 n회 이하 반복되는 문자
"치{1,2}"
‘치’가 1회 이상 2회 이하 반복하는 문자열을 찾음. ‘치커리’, ‘치카치카’ 모두 해당.
?
0~1회 나타나는 문자
"[가나다]?"
‘가’ 또는 ‘나’ 또는 ‘다’가 0~1회 등장하는 문자열을 찾음. ‘가지마’, ‘나라’, ‘안녕’ 모두 해당.
Pattern
기능
예시
설명
[A-z] 또는 [:alpha:] 또는 \a
알파벳 대문자 또는 소문자인 문자열을 찾음
"[A-z]+"
대상 문자열에서 알파벳이 한 개 이상인 문자열을 찾음
[0-9] 또는 [:digit:] 또는 \d
숫자인 문자열을 찾음
"^[0-9]+"
한 개 이상의 숫자로 시작하는 문자열을 찾음
Pattern
기능
예시
설명
[^문자]
괄호 안의 문자를 포함하지 않은 문자열을 찾음
"[^길로그]"
‘길’ 또는 ‘로’ 또는 ‘그’를 포함하지 않는 문자열을 찾음. ‘길가’, ‘로그’, ‘그리고’ 모두 제외됨.
REGEXP_INSTR()
문자열에서 정규 표현식이 등장하는 인덱스(위치) 값을 반환, 일치하지 않을 경우 0 반환, 문자 인덱스는 1부터 시작
REGEXP_INSTR(source_char, expr[, pos[, occurrence[, return_option[, match_type]]]]) - source_char: 점검 대상 문자열 - expr: 정규 표현식 - pos: 검색을 시작할 위치로 기본은 1 - occurrence: 몇 번째로 등장한 요소인가에 대한 옵션으로 기본은 1 - return_option: 0이면 matching이 시작한 곳, 1이면 matching이 끝난 다음 위치. 기본은 0
-- dog 글자가 나오는 시작 인덱스 반환,문자 인덱스는 1부터 시작하므로 1로 반환
mysql> SELECT REGEXP_INSTR('dog cat dog', 'dog');
+------------------------------------+
| REGEXP_INSTR('dog cat dog', 'dog') |
+------------------------------------+
| 1 |
+------------------------------------+
-- 2번째 문자(o) 이후부터 dog가 나오는 시작 인덱스 반환
-- dog cat dog
-- 123456789 -> 9인덱스 반환
mysql> SELECT REGEXP_INSTR('dog cat dog', 'dog', 2);
+---------------------------------------+
| REGEXP_INSTR('dog cat dog', 'dog', 2) |
+---------------------------------------+
| 9 |
+---------------------------------------+
-- a{2}:a가 2번 반복된 aa 문자의 첫번재 인덱스 반환
mysql> SELECT REGEXP_INSTR('aa aaa aaaa', 'a{2}');
+-------------------------------------+
| REGEXP_INSTR('aa aaa aaaa', 'a{2}') |
+-------------------------------------+
| 1 |
+-------------------------------------+
-- a{4}:a가 4번 연속 반복된 aaaa문자의 첫번재 인덱스 반환
-- aa aaa aaaa
-- 12345678 -> 8반환
mysql> SELECT REGEXP_INSTR('aa aaa aaaa', 'a{4}');
+-------------------------------------+
| REGEXP_INSTR('aa aaa aaaa', 'a{4}') |
+-------------------------------------+
| 8 |
+-------------------------------------+
REGEXP_SUBSTR()
정규식과 일치하는 문자열 반환. 일치하지 않을 경우 NULL
REGEXP_SUBSTR(source_char, expr[, pos[, occurrence[, match_type]]]) - source_char: 점검 대상 문자열 - expr: 정규 표현식 - pos: 검색을 시작할 위치로 기본은 1 - occurrence: 몇 번째로 등장한 요소인가에 대한 옵션으로 기본은 1
REGEXP_REPLACE(source_char, expr, replace_string[, pos[, occurrence[, mtch_type]]]) - source_char: 점검 대상 문자열 - expr: 정규 표현식 - replace_string: 대체 문자 - pos: 검색을 시작할 위치로 기본은 1 - occurrence: 몇 번째로 등장한 요소인가에 대한 옵션으로 기본은 1
-- b 문자열 X로 변경
mysql> SELECT REGEXP_REPLACE('a b c', 'b', 'X');
+-----------------------------------+
| REGEXP_REPLACE('a b c', 'b', 'X') |
+-----------------------------------+
| a X c |
+-----------------------------------+
mysql> SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3);
+----------------------------------------------------+
| REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3) |
+----------------------------------------------------+
| abc def X |
+----------------------------------------------------+