로그인 또는 비밀번호 찾기 기능 등을 구현 중,
이메일 검사를 진행하는데, 이때 유효한 이메일 타입 String이 아닐 경우에 대한 처리가 필요하곤 합니다.
Argument로 넘어온 String이 이메일 형식인지를 확인하기 위해서 정규표현식을 사용합니다.
정규표현식이란?
- 정규 표현식(regex, rational expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식언어입니다. 정규 표현식은 많은 프로그래밍 언어 또는 텍스트 편집기에서 문자열의 검색과 치환을 위해 지원하고 있으며, 이메일 형식이나 그 외 특정 문자 형식을 추출하거나 검사할 때 유용하게 쓰이고 있습니다.
val emailExpression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"
val phoneNumberExpression = "\d{3}-\d{3,4}-\d{4}"
이메일 형식 검사를 위해 사용할 정규 표현식입니다.
사용된 문법에 대해서는 아래 자료를 통해 확인 가능합니다.
Tcl과 아스키코드가 혼합되어 사용된 것을 알 수 있습니다.

이메일 유효성 검사를 위한 예시 func
//정규식 활용 이메일 형식 체크
fun isEmailValid(email: String): Boolean {
var isValid = false
val expression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"
val inputStr: CharSequence = email
val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE)
val matcher = pattern.matcher(inputStr)
if (matcher.matches()) {
isValid = true
}
return isValid
}
Pattern Class
- 자바와 코틀린에서 지원하는 정규식 라이브러리 클래스입니다.
- compile(regex: String, flags: Int) : 주어진 정규표현식으로부터 문자 패턴을 생성합니다.
- matcher(input: CharSequence).matches() : 인자로 넘어온 문자열이 생성된 패턴과의 일치여부에 따라 Bool 값을 반환합니다.
- Pattern.CASE_INSENSITIVE : 인자로 넘어온 String에 대해 대소문자를 구별하지 않고 판별하는 상수 값입니다.
- Matcher 객체를 통해 특정 문자열과 일치하는지 검사가 가능합니다.


로그인 또는 비밀번호 찾기 기능 등을 구현 중,
이메일 검사를 진행하는데, 이때 유효한 이메일 타입 String이 아닐 경우에 대한 처리가 필요하곤 합니다.
Argument로 넘어온 String이 이메일 형식인지를 확인하기 위해서 정규표현식을 사용합니다.
정규표현식이란?
- 정규 표현식(regex, rational expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식언어입니다. 정규 표현식은 많은 프로그래밍 언어 또는 텍스트 편집기에서 문자열의 검색과 치환을 위해 지원하고 있으며, 이메일 형식이나 그 외 특정 문자 형식을 추출하거나 검사할 때 유용하게 쓰이고 있습니다.
val emailExpression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"
val phoneNumberExpression = "\d{3}-\d{3,4}-\d{4}"
이메일 형식 검사를 위해 사용할 정규 표현식입니다.
사용된 문법에 대해서는 아래 자료를 통해 확인 가능합니다.
Tcl과 아스키코드가 혼합되어 사용된 것을 알 수 있습니다.

이메일 유효성 검사를 위한 예시 func
//정규식 활용 이메일 형식 체크
fun isEmailValid(email: String): Boolean {
var isValid = false
val expression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"
val inputStr: CharSequence = email
val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE)
val matcher = pattern.matcher(inputStr)
if (matcher.matches()) {
isValid = true
}
return isValid
}
Pattern Class
- 자바와 코틀린에서 지원하는 정규식 라이브러리 클래스입니다.
- compile(regex: String, flags: Int) : 주어진 정규표현식으로부터 문자 패턴을 생성합니다.
- matcher(input: CharSequence).matches() : 인자로 넘어온 문자열이 생성된 패턴과의 일치여부에 따라 Bool 값을 반환합니다.
- Pattern.CASE_INSENSITIVE : 인자로 넘어온 String에 대해 대소문자를 구별하지 않고 판별하는 상수 값입니다.
- Matcher 객체를 통해 특정 문자열과 일치하는지 검사가 가능합니다.

