이것저것

정규 표현식

감자b 2025. 4. 7. 19:59

정규 표현식(Regular Expression)은 문자열에서 특정 패턴을 찾거나 매치하기 위한 형식 언어로, 문자열 검색, 대체, 검증 등 다양한 작업에 사용된다.

 

정규 표현식 기본 문법

패턴 의미
^ 문자열의 시작
$ 문자열의 끝
. 임의의 한 문자
* 앞의 요소가 0회 이상 반복
+ 앞의 요소가 1회 이상 반복
? 앞의 요소가 0회 또는 1회 등장
[] 문자 집합
[^] 부정 문자 집합
\d 숫자 0~9 
\D 숫자가 아님
\w 알파벳, 숫자, 밑줄
\s 공백
{} 횟수를 지정할 때 사용 (a{3} = a가 정확히 3번, a{2,4} = a가 2~4번 사이로 나와야한다는 의미)

 

예시

1. 전화번호 형식 검증

01[0-9]-[0-9]{3,4}-[0-9]{4}

 

 

2. 파일 확장자 추출

\.([a-zA-Z0-9]+)$

 

3. 주민번호 형식 검증

\d{6}-[1-4]\d{6}

 

자바에서의 정규 표현식 활용

public class Cotes {

    public static void main(String[] args) {
        // 검증하려는 휴대폰 번호
        String[] phoneNum = new String[]{"010-1234-1234", "11-1234-1234"};

        Pattern pattern = Pattern.compile("01[0-9]-[0-9]{3,4}-[0-9]{4}");
        for (String s : phoneNum) {
            Matcher matcher = pattern.matcher(s);
            if (matcher.matches()) {
                System.out.println("유효한 휴대폰 번호입니다.");
            } else {
                System.out.println("유효하지 않은 휴대폰 번호입니다.");
            }
        }
    }
}