자바

정규표현식(REGEX) 문법 정리

류창 2022. 12. 24. 22:53
반응형

 

 

정규표현식이란?

 

정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.

 

즉, 단 한줄로 내가 원하는 문자열 패턴을 제작하여 찾는 식이다.

 

 

이 정규표현식을 진짜 잘 사용하면, 단 한줄로, 무궁무진한 패턴을 만들수 있다.

 

 

Java에서 정규표현식의 사용처

 

대표적인 메소드는  replaceAll() , matches() 이다.

 

replaceAll()은  해당 패턴을 치환해주는 메소드,

matches()는 해당 패턴이 일치하는지 확인하는 메소드다.

 

 

정규표현식의 문법

^ 문자열의 시작
$ 문자열의 끝
. 임의의 한 문자
* 문자가 0번 이상 발생
+ 문자가 1번 이상 발생
? 문자가 0번 혹은 1번 발생
[ ]  문자의 집합 범위를 나타냄
[0-9] : 숫자 (0부터 9)
[a-z] : 알파벳 (a부터 z)

앞에 ^가 나타나면 not을 의미
{ }  횟수 또는 범위를 의미
( )  소괄호 안의 문자를 하나의 문자로 인식
|  or 조건
\ 확장 문자의 시작 
\b 단어의 경계
\B 단어가 아닌 것의 경계
\A 입력의 시작부분
\G 이전 매치의 끝
\Z 입력의 끝이지만 종결자가 있는 경우
\z 입력의 끝
\s 공백문자
\S 공백문자가 아닌 나머지 문자
\w 알파벳이나 숫자
\W 알파벳이나 숫자를 제외한 문자
\d [0-9]와 동일
\D 숫자를 제외한 모든 문자

 

 

 

 

이걸 적절하게 사용하면 이런 패턴을 작성할수가있다.

^[0-9]*$ 숫자
^[a-zA-Z]*$ 영문자
^[가-힣]*$ 한글
\\w+@\\w+\\.\\w+(\\.\\w+)? 이메일 주소
^\d{2,3}-\d{3,4}-\d{4}$ 전화번호
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ 핸드폰 번호
\d{6} \- [1-4]\d{6} 주민등록 번호
^\d{3}-\d{2}$ 우편번호

 

반응형