day09 정규 표현식

JTH·2023년 2월 2일
0

gb_jth

목록 보기
28/56

1.정규 표현식

1-1. 정규표현식이란?

  • 정규표현식(Regular expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 '형식언어'이다.
  • 정규표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 '문자열의 검색과 치환'을 위해 지원하고있다.

1-2. 정규표현식의 사용

	boolean java.util.regex.Pattern.matches(
		String arg0, CharSequence arg1
	);
  • arg0 : 정규표현식 문자열
  • arg1 : 형식을 검사받기위한 내용
  • 즉 위의 기능 arg1이 arg0의 형식에 맞는지를 검사하고 결과를 boolean으로 리턴한다.

package patternchecker;

import java.util.regex.Pattern;

public class Main01 {

	public static void main(String[] args) {
		//회원가입시에 입력한 내용을 가정한 변수값들
		String name = "자바학생";
		String age = "19";
		String email = "user@java.net";
		String phone = "01012345678";
		
		// 한글여부 검증
		boolean isKor = 
				Pattern.matches("^[ㄱ-ㅎ가-힣]*$", name);
		
		if( !isKor ) {
			System.out.println("이름은 한글로 입력해 주세요.");
			//실행도중 return을 만나면 즉시중단
			// void형은 return 키워드만 명시 한다.
			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("회원가입 절차를 진행합니다.");
		
		
		
	}

}

정규 표현식 종류

  • 숫자 모양에 대한 형식 검사

    "^[0-9]*$"

  • 영문으로만 구성되었는지에 대한 형식 검사

    "^[a-zA-Z]*$"

  • 한글로만 구성되었는지에 대한 형식 검사

    "^[ㄱ-ㅎ가-힣]*$"

  • 영문과 숫자로만 구성되었는지에 대한 형식 검사

    "^[a-zA-Z0-9]*$"

  • 한글과 숫자로만 구성되었는지에 대한 형식 검사

    "^[ㄱ-ㅎ가-힣0-9]*$"

  • 이메일 형식인지에 대한 검사. "아이디@도메인"의 형식을 충족해야 한다.

    "^0-9a-zA-Z@0-9a-zA-Z.[a-zA-Z]{2,3}$"

  • "-"없이 핸드폰번호인지에 대한 형식검사.

    "^01(?:0|1|[6-9])(?:\d{3}|\d{4})\d{4}$"

  • "-"없이 전화번호인지에 대한 형식검사. 각 부분에 대한 자리수도 충족시켜야 한다.

    "^\d{2,3}\d{3,4}\d{4}$"

  • "-"없이 주민번호에 대한 글자수 및 뒷자리 첫글자가 1~4의 범위에 있는지에 대한 검사

    "^\d{6}[1-4]\d{6}"

블로그 주소 : https://hamait.tistory.com/342

profile
//

0개의 댓글