본문 바로가기
자바

자바 문자열 Pattern 클래스와 정규표현식 [북붙따라하기]

by 세상 모든 것 들은 그 자신을 위해 존재한다. 2020. 12. 29.

정규 표현식과 Pattern 예제 )코드를 복붙 하여 실행해 보시기 바랍니다.

설명은 코드 아래 부분에 있습니다.

정규표현식은 이해하기는 쉬우나 너무많은 분량이라 자주 사용하는 유용한 예제를 소개합니다.

필요한 부분은 복붙하여 사용하시고 좀더 깊은 공부는 아래의 링크를 참조 바랍니다.

 

 

import java.util.regex.Pattern;

public class Sample {

	public static void main(String[] args) {

		///////////////// 정규표현식과  Pattern 클래스의 예제 입니다.
		//필요한 부분만 복사하셔서 사용 하시면 되겠습니다.
		
		//이름을 입력받아서 한글 이름인지를 알아보는경우
		String strInputName = "김철수";
		
		if(Pattern.matches("^[가-힣]*$", strInputName)){
			
			System.out.println("한글이름이 맞습니다.");
			
		}else {
			System.out.println("한글이름이 아닙니다. 다시 입력해 주세요.");
		}
		
		
		//e-mail 을 입력받아서 형식이맞는지를 알아보는경우
		String strInputEmail = "dbg11@naver.com";
		
		if(Pattern.matches("\\w+@\\w+\\.\\w+(\\.\\w+)?",strInputEmail)){
			
			System.out.println("E-mail 형식이 맞습니다.");
			
		}else {
			System.out.println("잘못된 E-mail 형식입니다.. 다시 입력해 주세요.");
		}
		
		
		
		//전화번호 를 입력받아서 그 형식이 맞는지를 알아보는경우
		String strInputPhone = "010-5555-9999";
		
		if(Pattern.matches("^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$",strInputPhone)){
			
			System.out.println("전화번호 형식이 맞습니다.");
			
		}else {
			System.out.println("잘못된 전화번호 형식입니다.. 다시 입력해 주세요.");
		}
		
		
		//숫자만으로 구성 되어 있는지를 검사
		String strInputNumber = "0123456789";
		
		if(Pattern.matches("^[0-9]*$",strInputNumber)){
			
			System.out.println("숫자만으로 구성.");
			
		}else {
			System.out.println(" 숫자만으로 다시 입력해 주세요.");
		}
        
		
		//영어 소문자 대문자 만으로 구성 되어 있는지를 검사
		String strInputAlOnly = "abcdefghijklmnopqrstuvwxyz";
		
		if(Pattern.matches( "^[a-zA-Z]*$",strInputAlOnly)){
			
			System.out.println("알파벳으로 만 구성.");
			
		}else {
			System.out.println("알파벳으로 만 다시 입력해 주세요.");
		}
		
		
		
		// 숫자와 영어 소문자 대문자 만으로 구성 되어 있는지를 검사
		String strInputAor1 = "sdfdsaASFAS124521352315";

		if (Pattern.matches("^[a-zA-Z0-9]*$", strInputAor1)) {

			System.out.println("숫자와  알파벳으로 만 구성.");

		} else {
			System.out.println(" 숫자와  알파벳 다시 입력해 주세요.");
		}
		
		
		
		// 일반전화 번호 요즘은 잘 사용하지 않음
		String strInputPhone2 = "054-761-7979";

		if (Pattern.matches("^\\d{2,3}-\\d{3,4}-\\d{4}$", strInputPhone2)) {

			System.out.println("일반전화 형식이 맞음.");

		} else {
			System.out.println("일반전화 다시 입력해 주세요.");
		}
		
		
		
		//인터넷tcp/ip 주소 유효성 검사
		String strInputTcpip = "255.255.255.255";

		if (Pattern.matches("([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})", strInputTcpip)) {

			System.out.println("Tcp/Ip 형식이 맞음.");

		} else {
			System.out.println(" Tcp/Ip 다시 입력해 주세요.");
		}
		

	}
}
//결과는 :

//한글이름이 맞습니다.
//E-mail 형식이 맞습니다.
//전화번호 형식이 맞습니다.
//숫자만으로 구성.
//알파벳으로 만 구성.
//숫자와  알파벳으로 만 구성.
//일반전화 형식이 맞음.
//Tcp/Ip 형식이 맞음.

 

 

 

 

정규식은 검색 패턴을 형성하는  문자입니다. 

텍스트에서 데이터를 검색 할 때 이 검색 패턴을 사용 합니다.

정규식은 단일 문자 로 사용이 가능하고 복잡한 조합으로도 사용이 가능 합니다.

정규식을 사용하면 거의  모든 유형의 텍스트 검색  할 수 있습니다 .

주의할점은  의도 하지 않는 공백은 사용해서는 안됩니다.

에러가 발생합니다. 처음 이런 에러를 보면 찾기도 힘듭니다.

주의 하시기 바랍니다.

 

 

 

 보다 자세한 정규표현식은 

잘 설명된 아래의 링크를 찾아 보시길 바랍니다.

docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

728x90
반응형

댓글