본문 바로가기
안드로이드 자바

[JAVA][Android] 자바 정규 표현식 (유효성 검사) 사용법 & 예제

by teamnova 2021. 8. 7.
728x90

안녕하세요 이번 시간에는 정규표현식에 대해 알아보아요

 

정규표현식이 무었인가? 정규표현식 이란 컴퓨터 과학의 정규언어로부터 유래한 것으로 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 입니다. 개발을 하다보면 전화번호, 주민등록번호, 이메일등과 같이 정해져있는 형식이 있고 사용자가 그 형식대로 제대로 입력했는지 검증을 해야하는 경우가 종종 있습니다. 이런 입력값을 정해진 형식에 맞는지 검증해야 할 때에는 정규표현식을 사용하면 쉽게 구현할 수 있습니다.

 

 

 

 

 

정규표현식 작성 방법

 

자바에서 정규 표현식을 사용 할 때는 java.util.regex 패키지 안에 있는 Pattern클래스와 Matcher클래스를 주로 사용합니다.

 

이번시간에는 간단한 정규식을 예제로 보여드리고 나머지 추가 정규식을 어떻게 쓸 수 있는지에 대해 설명드리겠습니다~~

 

 

정규식은 Pattern.matches("정규식",String 변수이름) 으로 검사 할 수 있습니다. 

 

 

 

 

기본 정규 표현식의 의미에 대해 알아보아요~

 

1) ^ : 문자열의 시작
2) $ : 문자열의 종료
3) . : 임의의 한 문자 (문자의 종류와 관계없음)
4) | : or의 의미임
5) ? : 앞 문자가 없거나 하나 있을때
6) + : 앞 문자가 하나 이상임 (최소 한개 이상)
7) * : 앞 문자가 없을 수도 있고, 무한정 많을 수도 있음
8) [] : 문자 클래스의 지정, 문자의 집합이나 범위를 나태내면 - 기호를 사용한다. [] 내에서 ^를 사용하면 not의 의미임
9) {} : 횟수나 범위를 나타냄. 예를 들어 k{5}의 경우 k가 5번 반복되는 경우임, a{3,5}는 a가 3번 이상 5번 이하 반복되는 경우임
10) \w : 알파벳이나 숫자
11) \W : \w의 not. 즉 알파벳이나 숫자를 제외한 문자
12) \d : [0-9]와 동일
13) \D : 숫자를 제외한 모든 문자

 

위와 같은 의미가 있으며 이것들과 숫자를 조합하여 사용 합니다.

자주 사용하는 정규 표현식의 예에 대해서 보여드리겠습니다.

 

 

 

 

 

자주 사용하는 정규표현식의 예


1) 숫자만 : ^[0-9]*$
2) 영문자만 : ^[a-zA-Z]*$
3) 한글만 : ^[가-힣]*$
4) 영어 & 숫자만 : ^[a-zA-Z0-9]*$
5) E-Mail : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$
6) 휴대폰 : ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$
7) 일반전화 : ^\d{2.3} - \d{3,4} - \d{4}$
8) 주민등록번호 : \d{6} \- [1-4]\d{6}
9) IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})

 

 

 

 

위가 예이고 이제는 스틱 코드를 통해서 가장 많이 쓰는 3가지 조합에 대해 자동완성을 만들어 놓을께요

 

 

 

 

https://stickode.com/profile.html?no=1356&tab=post 

 

https://stickode.com/profile.html?no=1356&tab=post

 

stickode.com

 

스틱코드 저를 구독하시고 Valid check를 쓰시면 위와 같은 소스 코드가 자동완성 될 것입니다.

 

 

감사합니다. 다음에는 다른 기술로 찾아뵙겠습니다 ^^