(1) 정의 : 문자열의 패턴을 수식으로 표현한 것
(2) 용도 : 유효성 검사에 사용(=오류 검증) / 주민등록번호, 이메일, 전화번호 등이 규칙대로 잘 작성되었는지 체크함
(3) 작성법 : 슬래시(/) 사이에 기호를 넣어서 작성
대표적 기호 | 최소 | 최대 | 설명 | |
^ | - | - | 문자열의 시작을 의미 | |
$ | - | - | 문자열의 끝을 의미 | |
| | - | - | 좌우 패턴 중 하나 (= OR) | |
[문자들] | - | - | [ ]내의 문자 1개와 일치해야 함 | [Hh]ello : Hello or hello |
[^문자들] | - | - | [ ]내의 문자 제외한 문자 1개와 일치해야 함 * 여기서 캐럿(^)은 not을 의미 | |
^[문자들] | - | - | [ ]내의 문자로 시작해야 함 | |
[문자들]$ | - | - | [ ]내의 문자로 끝나야 함 | |
[문자1-문자2] | 문자1 | 문자2 | 문자1과 문자2 사이의 값 1개와 일치해야 함 | [a-c]는 a,b,c 중 1개와 일치 |
? | 0 | 1 | 앞의 패턴이 0회 또는 1회 반복됨 | |
* | 0 | 무한대 | 앞의 패턴이 0회 또는 무한으로 반복됨 | |
+ | 1 | 무한대 | 앞의 패턴이 1회 또는 무한으로 반복됨 | |
패턴{n} | n | n | 앞의 패턴이 n회 반복됨 | |
패턴{n,m} | n | m | 앞의 패턴이 n회 ~ m회 반복됨 | |
패턴{,m} | 0 | m | 앞의 패턴이 m회 이하 반복됨 | |
패턴{n,} | n | 무한대 | 앞의 패턴이 n회 이상 반복됨 | |
. | - | - | 한 개의 영문자, 숫자, 한글, 공백 기호 | |
\. | - | - | 점(DOT) 1개 의미 | |
\* | - | - | * 문자 의미(역슬래시 없이 별표(*)만 적으면 패턴 문자) | |
\d | - | - | 0~9 사이의 정수 | [0-9]로 표현 가능 |
\D | - | - | 정수가 아닌 문자 | [^0-9]로 표현 가능 |
\0 | - | - | Null 문자 | |
\t | - | - | 일반 탭 문자 | |
\v | - | - | 세로 탭 문자 | |
[\b] | - | - | 백스페이스 | |
\s | - | - | 공백 문자 | |
\S | - | - | 공백이 아닌 문자(\s와 반대) | |
\w | - | - | 알파벳 문자, 숫자, 언더바( _ ) | |
\W | - | - | \w와 반대 |
(4) 활용 예시
(예시 1) 전화번호 하이폰(-) 형식으로 표현식 만드는 법
→ 02-123-1234 / 02-1234-1234 / 031-987-9876 / 031-9876-9876 형식으로 작성할 수 있게 표현식 만드는 법
① /^\d{2,3}-\d{3,4}-\d{4}$/ : 슬래시 사이에 기호 넣을 준비
② /^\d{2,3}-\d{3,4}-\d{4}$/ : 시작과 끝 기호
③ /^\d{2,3}-\d{3,4}-\d{4}$/ : 0~9 사이의 정수(2자리~3자리)가 들어갈 수 있음을 의미
④ /^\d{2,3}-\d{3,4}-\d{4}$/ : 숫자 중간에 하이폰(-) 기호
⑤ /^\d{2,3}-\d{3,4}-\d{4}$/ : 0~9 사이의 정수(3자리~4자리)가 들어갈 수 있음을 의미
⑥ /^\d{2,3}-\d{3,4}-\d{4}$/ : 0~9 사이의 정수(4자리)가 들어갈 수 있음을 의미
▼ JAVA에서 정규 표현식은 양쪽 슬래시 생략하고 사용(역슬래시는 두 번 사용해야 함)
(예시 1) 처음 또는 끝에 마침표가 있는 경우
① ^[.] | [.]$ : 문자열 시작할 때 마침표인 경우
② ^[.] | [.]$ : 또는
③ ^[.] | [.]$ : 문자열 끝날 때 마침표인 경우
(예시 2) 점 1개 이상인 경우
① \\. + : 점 1개
② \\. + : +는 1회 또는 무한으로 반복
(예시 3) 소문자 알파벳, 숫자, 별표 아닌 것
① [^a-z0-9*] : 안에 문자가 아닌 것
② [^a-z0-9*] : 소문자 알파벳
③ [^a-z0-9*] : 숫자
④ [^a-z0-9*] : 별표
(5) 도식화 사이트 소개 : 아래 사이트는 정규 표현식을 도식화된 그림으로 보여준다
① 사이트 접속 (https://regexper.com/)
② Enter JavaScript-style regular expression to display 란 안에 정규식 입력 후 Display 클릭
댓글