[Java] 정규 표현식과 Pattern 클래스

Bam·2024년 3월 11일
0

Java

목록 보기
57/98
post-thumbnail

정규 표현

정규 표현(regex, Regular Expressions)은 특정 패턴을 갖는 문자열을 의미합니다. 대표적인 예로 웹 사이트 주소(https://)나 전화번호(000-0000-0000), 이메일 주소(xxxx@xxxx.xxx)가 특정 패턴을 가지고 자주 사용되는 문자열입니다.

이러한 문자열들을 검사하려니 일일히 조건을 넣어야 했습니다. 주소라면 http로 시작하는가, 전화번호는 -로 구분되는가 등을 조건 검사를 통해 이게 유효한 주소인지 확인을 했어야했는데 이런 문자열들을 검사하는 과정이 너무 길고 번거로웠습니다. 그래서 이런 문제를 해결하고자 정규 표현이 등장하게 되었습니다.


정규 표현식

정규 표현이 들어간 문자열을 정규식, 정규 표현식, 정규 표현 패턴이라고 부릅니다. 다음표는 정규 표현식을 작성할 때 사용하는 정규 표현을 정리한 표입니다.


매치는 문자열에 정규 표현이 들어가 있는 것을 의미합니다.


Pattern 클래스

자바에서 정규 표현식을 검증하고 싶은 경우 Pattern 클래스를 사용해서 검증합니다. matches()라는 메소드를 통해 정규 표현을 검증하고 boolean 값을 반환합니다.

boolean 변수명 = Pattern.matches("정규식", "검증 대상 문자열");

다음 코드는 정규 표현식과 Pattern 클래스를 사용해서 이메일 주소가 유효한지 검증하는 코드입니다.

public class Main {
    public static void main(String[] args) {
        String regex = "^[_a-z0-9-]+(.[_a-z0-9-]+)*@(?:\\w+\\.)+\\w+$";
        String str = "example1234@mail.com";

        boolean result = Pattern.matches(regex, str);

        if (result) {
            System.out.println("유효한 이메일");
        }
        else {
            System.out.println("유효하지않은 이메일");
        }
    }
}

0개의 댓글