Home

Jeong-Yoon

17 Feb 2020

정규 표현식

정규 표현식

  • 정규 표현식(Regular Expression) -> regex - 문자열을 원하는 패턴으로 처리하는 방법 - 문자열 입력에서 원하는 데이터 방식으로 제한

  • 정규 표현식의 필수 요소

    1. 시작과 끝
    2. 표현 종류
    3. 표현 범위

정규 표현식 문법

	^: 패턴 시작

	$: 패턴 끝  
	
	[] : 문자열 종류 및 범위 제한   
 	   [a-z] : 소문자 a부터 z까지   
	   [A-Z] : 대문자 A부터 Z까지   
	   [0-9] : 숫자 0부터 9까지   

	() : 내부의 문자를 하나의 문자로   
	
	{} : 개수 및 범위를 표현    
    	   {3}    : 3자리
    	   {1, 3} : 1자리 ~ 3자리 모두   
	
	\* : 적용되는 문자의 길이가 0~무한으로 받게끔.   
	
	\d : 숫자 	  
	
	\D : 숫자를 제외한 문자   
	
	\w : 영문, 숫자   
	
	\W : 영문, 숫자 제외한 문자   
	
	\s : 공백 문자    
	
	\S : 공백 문자를 제외한 문자   
    	    -> \S는 . 문자까지 인식  
	
	Escape Sequence : \
	  - 기존에 문자를 나타낸다면 정해진 기능을 갖게끔,
	  - 기존에 기능을 가진다면, 그냥 문자로 표현하게끔
	
	\" : " 문자   
	
	\' : ' 문자   
	
	\n : 개행 문자   

	\t : 탭 문자   

	\+ : 구분자로 활용   

	| : or 연산자   

	(?i) : 대소문자 무시
	...
	
	** 
	\w  -> 자바 문자열 특수문자로 제공하지 않아 컴파일 에러 발생
	\\w -> 자바 문자열이 아닌 정규 표현으로 사용하겠다.
	**

정규 표현식 사용 예시

	// 문자로 이루어진 문장인지 검사하는 패턴 예시
	String pattern = "^[a-zA-Z]*$";
	String str1 = "abcdEFGHijk"; // 패턴 일치
	String str2 = "123"; // 패턴 불일치
	if(Pattern.matches(pattern, str1)) {
		System.out.println("패턴 일치");
	} else {
		System.out.println("패턴 불일치");
	}

	// 숫자로 이루어진 문자열인지 검사하는 패턴 예시
	Pattern.compile("(^[0-9]*$)");
	String str1 = "123"; // 패턴 일치
	String str2 = "abcdEFGHijk"; // 패턴 불일치

	// 전화번호 검사를 위한 패턴 예시
	Pattern.compile("^[0-9]{2-3}-[0-9]{3-4}-[0-9]{4}$");
	String str1 = "123-1234-1234"; // 패턴 일치
	String str2 = "12-12-123"; // 패턴 불일치 

	// 이메일 주소 검사를 위한 패턴 예시
	pattern ="^\\w*@\\w*\\.\\w*$";
	String str1 = "a123@aaa.com"; // 패턴 일치

	// 핸드폰 번호 검사를 위한 패턴 예시
	pattern = "^01(?:0|1|[6-9])-\\d{4}-\\d{4}$";
	String str1 = "010-1234-1234"; // 패턴 일치
	String str2 = "010-123-1234"; // 패턴 불일치

	// 주민등록번호 검사를 위한 패턴 예시
	pattern = "^\\d{6}-[1-4]\\d{6}$";
	String str1 = "123456-1234567"; //패턴 일치

	// IP 주소 검사를 위한 패턴 예시
	pattern = "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$";
	String str1 = "192.168.1.2"; // 패턴 일치

	// 파일 확장자 검사를 위한 패턴 예시
	pattern = "^\\S+.(?i)(pdf|hwp|doc|java|ppt)$";
	String str1 = "Regex.java"; // 패턴 일치
	String str2 = "1.doc" // 패턴 일치
	String str3 = "R_최종.ppt"; // 패턴 일치

Til next time,
Jeong-Yoon at 00:00

scribble