Meta 문자, Escape 문자 등을 이용하여 일정한 규칙의 문자열을 표현하는 방법이다.
정규 표현식을 저장하기 위한 클래스다.
정규 표현식과 입력값을 전달받아 입력값에 대한 규칙을 비교하여 결과를 반환하는 메소드다.
//영문자로 시작되며 영문자,숫자,특수문자(_)의 조합으로 6~20 범위의 문자가 맞는지 비교
if(!Pattern.matches("^[a-zA-Z][a-zA-Z0-9_]{5,19}$", id)) {
System.out.println("[에러]입력한 아이디는 형식에 맞지 않습니다.");
System.exit(0);
}
정규표현식을 전달받아 Pattern 인스턴스에 저장하여 반환하는 메소드다.
Pattern idPattern= Pattern.compile("^[a-zA-Z]\\w{5,19}$");
정규표현식과 비교 문자열을 저장하기 위한 클래스다.
정규 표현식과 문자열을 비교하여 변경 또는 삭제 처리하는 기능 제공한다.
Pattern 인스턴스에 저장된 정규 표현식에 비교 문자열을 제공받아 저장한 Matcher 인스턴스를 반환하는 메소드다.
Pattern idPattern= Pattern.compile("^[a-zA-Z]\\w{5,19}$");
//id는 스캐너로 입력 받은 문자열
Matcher idMatcher=idPattern.matcher(id);
Matcher 인스턴스에 저장된 정규표현식과 문자열에 대한 규칙을 비교하여 결과를 반환하는 메소드다.(false : 불일치, true : 일치)
//아이디 validation 체크
if(!idMatcher.matches()) {
System.out.println("[에러]입력한 아이디는 형식에 맞지 않습니다.");
System.exit(0);
}
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidationApp {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("이메일 입력 >> ");
String email=scanner.nextLine();//입력 받은 이메일을 email 변수에 저장
if(email==null || email.equals("")) {//email 값 체크
System.out.println("[에러]이메일을 반드시 입력해 주세요.");
System.exit(0);
}
//이메일 규칙 - [사용자명@도메인명] 형식의 문자열로 표현
String emailReg="^([a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+)*$";
if(!Pattern.matches(emailReg, email)) {//이메일 규칙과 입력받은 email 비교
System.out.println("[에러]입력한 이메일은 형식에 맞지 않습니다.");
System.exit(0);
}
}
}