방구석 상상코딩

정규표현식(Regular Expression) 본문

Spring Boot/JavaScript

정규표현식(Regular Expression)

알 수 없는 사용자 2022. 2. 4. 15:27

정규표현식(Regular Expression)

: 특정 규칙을 가진 문자열의 집합, 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴

 

사용방법 

리터럴을 이용한 생성 RegExp 객체를 이용한 생성 
슬래쉬"/"로 감싸는 패턴
- 스크립트가 불러와질 때 컴파일 된다. 
- 정규식이 실행 시점에 컴파일 된다.
var re = /ab+c/; var re = new RegExp("ab+c");

 

Meta 문자

표현식 내부에서 특정한 의미를 갖는 문자

Meta문자 설명
. 한 개의 어떤 문자와도 일치할 경우
\d 한 개의 숫자와 일치할 경우
\w 한 개의 문자나 숫자와 일치할 경우
\s 공백, 탭, 줄 바꿈, 캐리지 리턴 문자와 일치
^ 패턴의 시작 표시
$ 패턴의 끝 표시
[] 문자종류, 문자범위와 일치하는 경우

EX)
[abc] : a 또는 b또는 c와 일치하는 경우 
[a-z] : a 부터 z까지 중 하나와 일치하는 경우 
[1-9] : 1부터 9까지 중 하나와 일치하는 경우

 

수량 한정자

: Meat문자 뒤에 붙여서 쓰이며, 문자가 몇 번 반복되는지를 의미함

수량 한정자 기능 예시
() 그룹핑 "abc|efg" = a{c|d}fg
* 0회 이상 반복 "a*b" = ab / aab / aaab
+ 1회 이상 반복 "a+b" = ab / aab / aaab
? 0회 또는 1회 반복 "a?b" = b / ab
{m} m회 반복 "a{3}b" = aaab

 

플래그(Flags)

: 정규표현식의 옵션으로 정규식으로 검색하려는 문자 패턴에 추가적인 옵션을 넣어 원하는 문자 검색 결과를 반환

플래그(flag) 설명
i 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정
g 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정

(없을 경우, 일치하는 문자 하나만 찾는다.)
m 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정
(^ : 문자열의 처음 / $ : 문자열의 끝)
y 대상 문자열의 현재 위치부터 비교를 시작하도록 설정
(문자열 lastIndex 속성을 설정한 후 사용 가능)

 

 

※ 자주 사용되는 정규 표현식 모음  

정규 표현식 설명
^[]*$ 모든 문자
^[0-9]*$ 숫자 모양에 대한 형식 검사
^[0-9]+(.[0-9]+)?$ 실수 모양에 대한 형식 검사
^[a-zA-Z]*$ 영문 구성 확인
^[ㄱ-ㅎ가-힣]*$ 한글 구성 확인
^[a-zA-Z0-9]*$ 영문 + 숫자 구성 확인
^[ㄱ-ㅎ가-힣0-9]*$ 한글 + 숫자 구성 확인
^[0-9ㅁ-zA-Z]+(.[_a-z0-9-]+)*@(?:\\w+\\.)+\\w+$ 이메일 형식 검사 ( "아이디@도메인" )
^01(?:0|1|[6-9])(?:\\d{3}|\\d{4}\\d{4}$ "-"없이 핸드폰번호 형식검사
^\\d{2,3}\\d{3,4}\\d{4}$ "-"없이 전화번호 형식검사 ( 자리수 충족 )
^\\d{6}[1-4]\\d{6}$ "-"없이 주민번호 형식 검사 
( 글자수 및 뒷자리 숫자가 1~4 범위 충족)

 

 

영문 정규식 참고 

https://regexlib.com


http://www.tcpschool.com/javascript/js_regularExpression_concept

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions

 

정규 표현식 - JavaScript | MDN

정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다.  이 패턴들은 RegExp의 exec 메소드와 test 메소드  ,

developer.mozilla.org