[JAVA] 정규표현식

김윤섭·2023년 2월 2일
0

JAVA

목록 보기
19/27
post-thumbnail

정규표현식이란?

  • 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용
  • 문자열의 검색과 치환하기 위해 지원
-사용자한테 이름, 전화번호 정보를 얻고자 할때
-이름은 한글, 전화번호는 숫자로 이루어짐
-이름에 영어입력이 없고 전화번호에 숫자외의 입력이 없도록
-데이터의 검증 >> 이때 필요한게 정규표현식

정규표현식의 사용

(1) 정규표현식의 종류

- 숫자			: "^[0-9]*$" 
- 영문			: "^[a-zA-Z]*$"
- 한글			: "^[ㄱ-ㅎ가-힣]*$"
- 영문+숫자 		: "^[a-zA-Z0-9]*$"
- 한글+숫자		: "^[ㄱ-ㅎ가-힣0-9]*$"
- 이메일형식		: "^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[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}"
                
	* : 반복 여부(설정한 범위만큼 문자열검사)
	^ : 문자열 시작
	$ : 문자열 종료
    
✔ 핸드폰번호 전화번호는 "-"없는 것에 대한 확인    
✔ 복사 붙여넣기 해서 쓰기

(2) 정규표현식의 사용

  • pattern match 사용
	//숫자로만 이루어졌어? (t/f) 판별 = boolean
	boolean java.utill.regex.Pattern.matches(
		String arg0, CharSequence arg1
	);

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

	Pattern.matches(
			String arg0, CharSequence arg1
	);

<<< 예시 >>>

	//회원가입 시 사용할 변수
	String name = "자바학생";
	String age = "19살";	
    
    //한글여부
	boolean isKor =
		Pattern.matches("^[ㄱ-ㅎ가-힣]*$", name);
		// isKor이 true면 한글로 잘 만든 것 -> 한글이 아니면 조건문 충족
		if( !isKor ) {
			System.out.println("이름은 한글로 입력해주세요.");
			return;
		}
	
	// 나이 숫자여부	
	boolean isNum =
			Pattern.matches("^[0-9]*$", age);
		if( !isNum ) {
			System.out.println("나이는 숫자로 입력해주세요.");
			return;
		}
	System.out.println("회원가입 절차를 진행합니다."); 
    
    //출력 :
    	나이는 숫자로 입력해주세요.

profile
안녕하세요

0개의 댓글