본문 바로가기
IT관련/HTML

[정규 표현식] 정의 / 용도 / 작성법 / 활용 예시 / 도식화 사이트 소개

by 확고 2022. 3. 13.
728x90
반응형

 

(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 클릭

 

 

Regexper

 

regexper.com

   

728x90
반응형

댓글