개발 지식

java 정규식 패턴 예시

good 모닝 2025. 4. 12. 08:38
728x90
반응형

이 프로그램은 다양한 정규식을 활용하여 이메일, 전화번호, 단어, 날짜, 이름, 비밀번호의 유효성을 검사하고, 문자열에서 특정 패턴을 교체하는 예제를 보여줍니다. 각 정규식은 해당 패턴을 정확히 매칭하거나 원하는 부분을 추출하기 위해 설계되었습니다.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexExamples {
    public static void main(String[] args) {
        // 이메일 주소 유효성 검사
        String inputEmail = "example@gmail.com";
        String emailPattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
        System.out.println("이메일 유효성 검사: " + inputEmail.matches(emailPattern));

        // 전화번호 유효성 검사 (예: 123-456-7890, 1234567890)
        String inputPhone = "123-456-7890";
        String phonePattern = "^\\d{3}-?\\d{3}-?\\d{4}$";
        System.out.println("전화번호 유효성 검사: " + inputPhone.matches(phonePattern));

        // 문장에서 단어 추출
        String sentence = "자바 정규 표현식은 매우 유용합니다.";
        String wordPattern = "\\w+";
        Matcher wordMatcher = Pattern.compile(wordPattern).matcher(sentence);
        System.out.print("추출된 단어들: ");
        while (wordMatcher.find()) {
            System.out.print(wordMatcher.group() + " ");
        }
        System.out.println();

        // 텍스트에서 날짜 추출 (예: 15/09/2023)
        String textWithDate = "오늘 날짜는 15/09/2023입니다.";
        String datePattern = "\\d{2}/\\d{2}/\\d{4}";
        Matcher dateMatcher = Pattern.compile(datePattern).matcher(textWithDate);
        while (dateMatcher.find()) {
            System.out.println("찾은 날짜: " + dateMatcher.group());
        }

        // 전체 이름에서 이름과 성 분리
        String fullName = "홍길동";
        String namePattern = "(\\w{1,})\\s(\\w{1,})";
        Matcher nameMatcher = Pattern.compile(namePattern).matcher("홍 길동");
        if (nameMatcher.find()) {
            System.out.println("이름: " + nameMatcher.group(1));
            System.out.println("성: " + nameMatcher.group(2));
        }

        // 강력한 비밀번호 유효성 검사
        String inputPassword = "P@ssword1";
        String passwordPattern = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).{8,}$";
        System.out.println("비밀번호 유효성 검사: " + inputPassword.matches(passwordPattern));

        // 문자열에서 특정 패턴을 다른 패턴으로 교체 (예: 모든 공백을 언더스코어로 변경)
        String textToReplace = "자바 정규 표현식을 사용하여 텍스트를 처리합니다.";
        String replacePattern = "\\s";
        String replacedText = textToReplace.replaceAll(replacePattern, "_");
        System.out.println("교체된 텍스트: " + replacedText);
    }
}
  1. 이메일 유효성 검사:
    • inputEmail 변수에 이메일 주소를 저장합니다.
    • emailPattern 정규식을 사용하여 이메일 형식을 검사합니다.
    • matches 메소드를 통해 이메일이 유효한지 출력합니다.
  2. 전화번호 유효성 검사:
    • inputPhone 변수에 전화번호를 저장합니다.
    • phonePattern 정규식을 사용하여 다양한 전화번호 형식을 검사합니다.
    • matches 메소드를 통해 전화번호가 유효한지 출력합니다.
  3. 문장에서 단어 추출:
    • sentence 변수에 문장을 저장합니다.
    • wordPattern 정규식을 사용하여 단어를 추출합니다.
    • Matcher를 사용하여 문장에서 단어를 찾아 출력합니다.
  4. 텍스트에서 날짜 추출:
    • textWithDate 변수에 텍스트를 저장합니다.
    • datePattern 정규식을 사용하여 날짜 형식을 추출합니다.
    • Matcher를 사용하여 텍스트에서 날짜를 찾아 출력합니다.
  5. 전체 이름에서 이름과 성 분리:
    • fullName 변수에 전체 이름을 저장합니다.
    • namePattern 정규식을 사용하여 이름과 성을 분리합니다.
    • Matcher를 사용하여 이름과 성을 찾아 각각 출력합니다.
  6. 강력한 비밀번호 유효성 검사:
    • inputPassword 변수에 비밀번호를 저장합니다.
    • passwordPattern 정규식을 사용하여 비밀번호의 강도를 검사합니다.
    • matches 메소드를 통해 비밀번호가 강력한지 출력합니다.
  7. 문자열에서 특정 패턴을 교체:
    • textToReplace 변수에 텍스트를 저장합니다.
    • replacePattern 정규식을 사용하여 공백 문자를 언더스코어로 교체합니다.
    • replaceAll 메소드를 통해 교체된 텍스트를 출력합니다.
728x90
반응형

'개발 지식' 카테고리의 다른 글

python 정규식 예제  (0) 2025.04.11
javascript 정규식(RegEx) 패턴 예시 모음  (0) 2025.04.09