Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- inflearn
- Spring
- 이것이자바다
- 자바연습문제
- 서블릿
- REGEXP_SUBSTR
- 불친절한 SQL 프로그래밍
- Python
- Numpy
- 인프런
- 자바의정석 연습문제
- JPA
- 분석함수
- 김영한
- 스프링MVC
- 스프링입문
- 항해플러스 백엔드
- 항해플러스
- docker
- Java의정석
- 시큐어코딩
- 자바의정석
- 제네릭
- Secure Coding
- 스프링 핵심원리
- 자바공부
- 스프링 부트와 JPA
- 스프링
- 불친절한SQL프로그래밍
- java
Archives
- Today
- Total
Continuous Challenge
[불친절한 SQL 프로그래밍] [24장] 정규 표현식(1) (feat. REGEXP_SUBSTR) 본문
728x90
728x90
744P
정규 표현식
정규 표현식은 문자열의 규칙을 표현하는 검색 패턴으로 주로 문자열 검색과 치환에 사용된다.
24.1.1.1 기본 연산자
연산자 | 영문 | 설명 |
. | dot | 모든 문자와 일치 (newline 제외) |
| | or | 대체 문자를 구분 |
\ | backslach | 다음 문자를 일반 문자로 처리 |
24.1.1.2 앵커
앵커(anchor)는 검색 패턴의 시작과 끝을 지정한다.
연산자 | 영문 | 단일 행 방식 | 다중 행 방식 |
^ | carrot | 문자열의 시작 | 행의 시작 |
$ | dollar | 문자열의 끝 | 행의 끝 |
24.1.1.3 수량사
수량사(quantifier)는 선행 표현식의 일치 횟수를 지정한다. 패턴을 최대로 일치시키는 탐욕적(greedy) 방식으로 동작한다.
연산자 | 설명 |
? | 0회 또는 1회 일치 |
* | 0회 또는 그 이상의 횟수로 일치 |
+ | 1회 또는 그 이상의 횟수로 일치 |
{m} | m회 일치 |
{m, } | 최소 m회 일치 |
{, m} | 최대 m회 일치 |
{m, n} | 최소 m회, 최대 n회 일치 |
24.1.1.4 서브 표현식
서브 표현식(subexpression)은 표현식을 소괄호로 묶은 표현식이다.
연산자 | 설명 |
(expr) | 괄호 안의 표현식을 하나의 단위로 취급 |
24.1.1.5 역참조
역 참조(back reference)를 사용하면 일치한 서브 표현식을 다시 참조할 수 있다. 반복되는 패턴을 검색하거나 서브 표현식의 위치를 변경하는 용도로 사용할 수 있다.
연산자 | 설명 |
\n | n번째 서브 표현식과 일치, n은 1에서 9 사이의 정수 |
24.1.1.6 문자 리스트
문자 리스트(character list)는 문자를 대괄호로 묶은 표현식이다. 문자 리스트 중 1문자만 일치하면 패턴이 일치한 것으로 처리된다. 문자 리스트에서 하이픈(-)은 범위 연산자로 동작한다.
연산자 | 설명 |
[char...] | 문자 리스트 중 1문자와 일치 |
[^char...] | 문자 리스트에 포함되지 않은 한 문자와 일치 |
24.1.1.7 POSIX 문자 클래스
오라클 정규 표현식은 POSIX 문자 클래스를 지원한다. POSIX 문자 클래스는 문자 리스트에 사용해야 한다.
문자 클래스 | 설명 | 동일 |
[:digit:] | 숫자 | [0-9] |
[:lower:] | 소문자 | [a-z] |
[:upper:] | 대문자 | [A-Z] |
[:alpha:] | 영문자 | [a-zA-Z] |
[:alnum:] | 영문자와 숫자 | [0-9a-zA-Z] |
[:xdigit:] | 16진수 | [0-9a-fA-F] |
[:punct:] | 구두점 기호 | [^[:alnum:][:cntrl:]] |
[:blank:] | 공백 문자 | |
[:space:] | 공간 문자(space, enter, tab) |
[:cntrl:] | 제어 문자(아스키 < 32, 아스키 > 126) | |
[:print:] | 출력이 가능한 모든 문자 (아스키 32 ~ 126) | |
[:graph:] | [:print:]에서 space 제외 |
728x90
728x90
'Study > 불친절한 SQL 프로그래밍' 카테고리의 다른 글
Comments