![[Java] 정규 표현식 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqSOs3%2FbtsMWl3EUwe%2Fnr2F7ZzxwXOTw9xIJZmoj1%2Fimg.jpg)
[Java] 정규 표현식 클래스Language/Java2025. 3. 25. 16:09
Table of Contents
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다.
정규 표현식 클래스
- 문자열이 정해져 있는 형식으로 구성되어 있는지 검증해야 하는 경우가 있다.
- 예를 들어 이메일이나 전화번호를 사용자가 제대로 입력했는지 검증할 때이다.
- 자바는 정규 표현식(Regular Expression)을 이용해서 문자열이 올바르게 구성되어 있는지 검증한다.
정규 표현식 작성 방법
- 정규 표현식은 문자 또는 숫자와 관련된 표현과 반복 기호가 결합된 문자열이다.
- 아래는 정규 표현식을 구성하는 표현 및 기호에 대한 설명이다.
다음은 02-123-1234 또는 010-1234-5678과 같은 전화번호를 위한 정규 표현식이다.
// 02-123-1234 형태
"^02-\\d{3}-\\d{4}$"
// 010-1234-5678 형태
"^010-\\d{4}-\\d{4}$"
// 둘 다 허용
"^(02|010)-\\d{3,4}-\\d{4}$"
다음은 white@naver.com과 같은 이메일을 위한 정규 표현식이다.
"\\w+@\\w+\\.\\w+(\\.\\w+)?"
// 또는 더 정확한 버전
"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}$"
주의할 점은 \.과 .은 다르다는 것이다. \.은 문자로서의 점(.)을 말하지만 .은 모든 문자 중에서 한 개의 문자를 뜻한다.
Pattern 클래스로 검증
- java.util.regex 패키지의 Pattern 클래스는 정규 표현식으로 문자열을 검증하는 matches() 메소드를 제공한다.
- 첫 번째 매개값은 정규 표현식이고, 두 번째 매개값은 검증할 문자열이다. 검증한 후의 결과는 boolean 타입으로 리턴된다.
import java.util.regex.Pattern;
public class PatternExample {
public static void main(String[] args) {
String regExp = "(02|010)-\\d{3,4}-\\d{4}";
String data = "010-123-4567";
boolean result = Pattern.matches(regExp, data);
if(result) {
System.out.println("정규식과 일치합니다.");
} else {
System.out.println("정규식과 일치하지 않습니다.");
}
regExp = "\\w+@\\w+\\.\\w+(\\.\\w+)?";
data = "angel@mycompanycom";
result = Pattern.matches(regExp, data);
if(result) {
System.out.println("정규식과 일치합니다.");
} else {
System.out.println("정규식과 일치하지 않습니다.");
}
}
}
'Language > Java' 카테고리의 다른 글
[Java] @NoArgsConstructor(access = AccessLevel.PROTECTED) (0) | 2025.04.01 |
---|---|
[Java] 추상클래스와 인터페이스 차이점 (0) | 2025.03.26 |
[Java] 형식(Format) 클래스 (0) | 2025.03.25 |
[Java] BigInteger 클래스 (0) | 2025.02.28 |
[Java] Optional<T> (1) | 2024.03.15 |