정규 표현식 기초
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
챌린지
쉬움validateInput이라는 이름을 가진 메서드를 생성하세요. 이 메서드는 두 개의 인수를 받습니다:
- 검증할 String (
text) - 검증 유형을 지정하는 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));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.