Menu
Coddy logo textTech

정규 표현식 기초

Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 46번째.

정규 표현식(regex)은 문자열을 검색하고 검증하는 데 사용되는 패턴입니다. Java에서는 matches() 메서드를 사용하여 문자열이 패턴과 일치하는지 확인합니다.

문자열이 숫자만 포함하는지 확인:

String text = "12345";
boolean isMatch = text.matches("[0-9]+");

위 코드를 실행한 후, isMatch에는 다음이 포함되어 있습니다:

true

문자열이 알파벳만 포함하는지 확인:

String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");

위의 코드를 실행한 후, isMatch에는 다음이 포함됩니다:

true

challenge icon

챌린지

쉬움

validateInput이라는 이름을 가진 메서드를 생성하세요. 이 메서드는 두 개의 인수를 받습니다:

  1. 검증할 String (text)
  2. 검증 유형을 지정하는 String (type)

이 메서드는 다음 유형에 따라 텍스트를 검증해야 합니다:

  • "number": 오직 숫자(0-9)만 포함해야 합니다
  • "word": 오직 문자(a-z 또는 A-Z)만 포함해야 합니다
  • "email": @를 포함하고 그 전에 최소 한 개의 문자를 포함해야 합니다
  • "phone": 정확히 10개의 숫자를 포함해야 합니다

반환 메시지는 다음과 같아야 합니다:

  • text가 null인 경우: return "Invalid input"
  • type이 유효하지 않은 경우: return "Invalid type"
  • 검증이 통과한 경우: return "Valid"
  • 검증이 실패한 경우: return "Invalid"

치트 시트

정규 표현식(regex)은 문자열을 검색하고 검증하는 데 사용되는 패턴입니다. Java에서는 문자열이 패턴과 일치하는지 확인하기 위해 matches() 메서드를 사용합니다.

문자열이 숫자만 포함하는지 확인:

String text = "12345";
boolean isMatch = text.matches("[0-9]+");

문자열이 문자만 포함하는지 확인:

String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");

일반적인 regex 패턴:

  • [0-9]+ - 하나 이상의 숫자
  • [a-zA-Z]+ - 하나 이상의 문자
  • [0-9]{10} - 정확히 10개의 숫자
  • .+@.+ - @를 포함하며 그 앞에 최소 하나의 문자

직접 해보기

import java.util.Scanner;

public class Main {
    public static String validateInput(String text, String type) {
        // 여기에 코드를 작성하세요
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        String type = scanner.nextLine();
        
        if (text.equals("null")) text = null;
        System.out.println(validateInput(text, type));
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨