📝 정규 표현식
- 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 '형식언어'이다.
출처 https://hamait.tistory.com/342
📝 Pattern 클래스
- Pattern 클래스의 matches()메서드는 문자열을 정규 표현식으로
검증하는 기능을 한다.
boolean java.util.regex.Pattern.matches(String arg0, CharSequence arg1);
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
// 회원가입시에 입력한 내용을 가정한 변수값들
String name = "자바학생";
String age = "22";
String email = "user@java.com";
String phone = "01012345678";
// 한글 여부 검사
boolean isKor = Pattern.matches("^[ㄱ-ㅎ가-힣]*$", name);
if (!isKor) {
System.out.println("이름은 한글로 입력해 주세요.");
return;
}
// 숫자인지 검사
boolean isNum = Pattern.matches("^[0-9]*$", age);
if (!isNum) {
System.out.println("나이는 숫자로만 입력해 주세요.");
return;
}
// 이메일 검사
boolean isEmail = Pattern.matches("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$", email);
if (!isEmail) {
System.out.println("이메일 형식이 맞지 않습니다.");
return;
}
// 휴대폰 형식 검사
boolean isPhone = Pattern.matches("^01(?:0|1|[6-9])(?:\\d{3}|\\d{4})\\d{4}$", phone);
if (!isPhone) {
System.out.println("전화번호 형식이 맞지 않습니다.");
return;
}
System.out.println("회원가입 절차를 시작합니다.");
}
}
👉 실행 결과
회원가입 절차를 시작합니다.
❗ 정규식과 일치하지 않을 경우
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String name = "java학생";
// 한글 여부 검사
boolean isKor = Pattern.matches("^[ㄱ-ㅎ가-힣]*$", name);
if (!isKor) {
System.out.println("정규식과 일치하지 않습니다.");
return;
} else {
System.out.println("정규식과 일치합니다.");
}
}
}
👉 실행 결과
정규식과 일치하지 않습니다.
참고자료 : <이것이 자바다>