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

[Java][Android] 정규표현식 알아보기

by teamnova 2021. 4. 2.

이번 예제에서는 스틱코드라는 플러그인을 이용해서 정규표현식을 알아보겠습니다.

 

정규표현식이란?

- 정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다.

- 정규 표현식을 줄여서 '정규식'이라고 하기도 합니다. 

- 정규 표현식에서 사용되는 기호를 Meta문자라고 합니다.

 

Meta문자를 직접 공부해서 정규표현식을 만들 수 있지만

이번 예제에서는 자주 사용하는 정규 표현식에 대해서 알아보겠습니다.

 


 1. email 

 

stickode.com/detail.html?no=49

 

스틱코드

 

stickode.com

스틱코드에서 제공한 예시 코드입니다.

// 이메일 형식만 입력 가능한 정규식    
String inputData = "Test@email.com";
Pattern pattern = Pattern.compile("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}$");
Matcher matcher = pattern.matcher(inputData);

if(matcher.find()){
    //이메일 형식에 맞을 때
}else{
    //이메일 형식에 맞지 않을 때
}

이 코드에서 표시하는 정규 표현식은

^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$ 입니다

.

이 정규표현식은 크게 4종류의 규칙을 가지고 있습니다.

1.[A-Za-z0-9._%+-] : 알파벳(A~Z, a~z), 숫자(0~9), (%+-_) 문자 입력 가능

2.+@: 문자 뒤에 @ 기호가 꼭 있어야 함

3.[A-Za-z0-9.-]: @ 기호 뒤에 알파벳(A~Z, a~z), 숫자(0~9), (.-) 문자 입력 가능

4.+.: 문자 뒤에 . 기호가 꼭 있어야 함

5.[A-Za-z] : .기호 뒤에 알파벳(A~Z, a~z) 입력 가능

6.{2,}: 입력되는 글씨는 최소 2글자 이상일 것

 

이렇게 6종류의 규칙을 정한 정규식입니다.

 

위의 코드에 Toast를 띄어보았습니다.

결과


2.  english & number

 

stickode.com/detail.html?no=53

 

스틱코드

 

stickode.com

스틱코드에서 제공한 예시 코드입니다.

String inputData = "Regex test data";

// 영어, 숫자만 입력 가능한 정규식
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]*$");
Matcher matcher = pattern.matcher(inputData);

if(matcher.find()){
    //문자열이 영어 또는 숫자로만 되어있을 때
}else{
    //문자열이 영어 또는 숫자로만 되어있지않을 때
}

이 코드에서 표시하는 정규 표현식은 ^[a-zA-Z0-9]*$ 입니다

 

이 정규표현식은 1종류의 규칙을 가지고 있습니다.

1.[A-Za-z0-9] : 알파벳(A~Z, a~z), 숫자(0~9), (%+-_) 문자 입력 가능

 

위의 코드에 Toast를 띄어보았습니다.

결과

띄어쓰기가 포함되어있으므로 위와 같은 결과가 나타났습니다.


3.  special character & number

 

stickode.com/detail.html?no=56

 

스틱코드

 

stickode.com

스틱코드에서 제공한 예시 코드입니다.

String inputData = "test data special character & number";

//최소 하나의 숫자 및 하나의 특수문자 입력, 전체 8글자 이상 입력
Pattern pattern = Pattern.compile("^(?=.*d)(?=.*[$@$!%*#?&])[d$@$!%*#?&]{8,}$");
Matcher matcher = pattern.matcher(inputData);

if(matcher.find()) {
    //정규표현식에 맞을 경우
} else {
    //정규표현식에 맞지 않을 경우
}

이 코드에서 표시하는 정규 표현식은 ^(?=.*d)(?=.*[$@$!%*#?&])[d$@$!%*#?&]{8,}$ 입니다

최소 하나의 숫자 및 하나의 특수문자 입력, 전체 8글자 이상 입력하는 정규식 코드입니다.

 

위의 코드에 Toast를 띄어보았습니다.

결과

최소 하나의 숫자가 들어지 않았으므로 위와 같은 결과가 나왔습니다.


이렇게 자주사용하는 정규표현식을 스틱코드 플러그인와 함께 알아보았습니다.

빠르게 코딩을 하고 싶다면 스틱코드를 이용하는걸 추천합니다.

다른 포스팅으로 만나요~