(Kotlin) 코틀린 정규식(Regex) 활용법과 실무 예제 모음
✨ 개요
정규식(Regular Expression, Regex)은 문자열 패턴을 정의하고 검사하는 데 사용하는 강력한 도구입니다.
Kotlin에서는 Regex
클래스를 통해 정규식을 쉽고 간결하게 사용할 수 있으며, 입력값 검증, 텍스트 추출, 포맷 필터링 등 다양한 실무 작업에 활용됩니다.
이번 글에서는 Kotlin 정규식의 기본 사용법과 함께, 실무에서 자주 쓰이는 패턴 예제를 중심으로 소개합니다.
1. ✅ 코틀린 정규식 기본 사용법
BuildConfig
는 Gradle 빌드 시 자동으로 생성되는 클래스입니다.
이 클래스는 앱의 버전, 디버그 여부, 빌드 설정 값 등을 포함하고 있어 다양한 환경 분기에 활용됩니다.
val regex = Regex("\\d+") // 숫자하나 이상
val result: Sequence<MatchResult> = regex.findAll("오늘은 2025년 5월 26일 입니다.")
result.forEach {
println(it.value) //2025, 5, 26
}
2. ✅ 실무에서 자주 쓰이는 정규식 예제
2.1 이메일 주소 검증
val emailRegex = Regex("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$")
val email = "example@email.com"
println(emailRegex.matches(email)) // true
2.2 휴대폰 번호 포맷 확인 (010-xxxx-xxxx)
val phoneRegex = Regex("^01[0-9]-\\d{3,4}-\\d{4}$")
val phone = "010-1234-5678"
println(phoneRegex.matches(phone)) // true
2.3 비밀번호 유효성 검사
val passwordRegex = Regex("^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@\$!%*#?&])[A-Za-z\\d@\$!%*#?&]{8,20}$")
val password = "Abcd1234!"
println(passwordRegex.matches(password)) // true
- (영문, 숫자, 특수문자 포함 8~20자)
2.4 계좌번호 형식 체크 (숫자 2자리 이상 - 2자리 이상 - 2자리 이상)
val accountRegex = Regex("^\\d{2,}-\\d{2,}-\\d{2,}$")
val acc1 = "123-456-7890"
val acc2 = "12-34-56"
println(accountRegex.matches(acc1)) // true
println(accountRegex.matches(acc2)) // true
3. 🔍 기타 유용한 정규식 & 팁
3-1 기타 유용한 정규식
패턴 이름 | 정규식 예시 | 설명 |
---|---|---|
숫자만 | ^\d+$ |
숫자만 포함 |
영문자만 | ^[A-Za-z]+$ |
영어만 포함 |
한글만 | ^[가-힣]+$ |
한글만 포함 |
주민등록번호 | ^\d{6}-\d{7}$ |
000000-0000000 포맷 |
날짜 (YYYY-MM-DD) | ^\d{4}-\d{2}-\d{2}$ |
날짜 형식 체크 |
3-2 팁
- Kotlin의 Regex는 문자열 비교 외에도 containsMatchIn(), findAll() 등 다양한 유틸리티 제공
- 특수문자는 이스케이프 필수 (\d, \. 등)
- 복잡한 정규식은 미리 테스트 → 정규식 활용
4.🧠 결론
- Kotlin의 Regex는 문자열 유효성 검사, 추출, 포맷 일치 확인 등 실무에서 꼭 필요한 기능입니다.
- Regex.matches() → 완전 일치
- Regex.containsMatchIn() → 포함 여부 검사
- Regex.findAll() → 추출
- 정규식을 적절히 활용하면 UI 단에서의 데이터 필터링부터 보안까지 폭넓은 영역에서 효율적인 코드를 만들 수 있습니다.