정규표현식

마동찬·2023년 4월 13일
0

자주사용하는 정규표현식

Pattern 클래스

정규 표현식에 대상 문자열을 검증하는 기능은 java.util.rege.Pattern 클래스의 'matches()'를 활용하여 검증할 수 있습니다.
matches(pattern,str)의 첫번째 매개값은 정규표현식이고 두번째 매개값은 검증 대상 문자열입니다. 검증 후 대상문자열이 정규표현식과 일치하면 true, 그렇지 않다면 false값을 리턴합니다.

import java.util.regex.Pattern;

public class RegexExample {
	public static void main(String[] args)  {
    
            String pattern = "^[0-9]*$"; //숫자만
            String val = "123456789"; //대상문자열
        
            boolean regex = Pattern.matches(pattern, val);
            System.out.println(regex);   //true
    }
}

유효성검사

정규표현식은 유효성검사 코드작성 시 가장 효율적인 방법이다.

import java.util.regex.Pattern;

public class RegexExample {
	public static void main(String[] args)  {
          String name = "홍길동";
          String tel = "010-1234-5678";
          String email = "test@naver.com";
         
          //유효성 검사
          boolean name_check = Pattern.matches("^[가-힣]*$", name);
          boolean tel_check = Pattern.matches("^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$", tel);
          boolean email_check = Pattern.matches("\\w+@\\w+\\.\\w+(\\.\\w+)?", email);

          //출력
          System.out.println("이름 : " + name_check);
          System.out.println("전화번호 : " + tel_check);
          System.out.println("이메일 : " + email_check);
    }
}

예제

예제 1)
휴대전화 : ^\d {3}-\d {3,4}-\d {4}$

^ : 패턴 문자열의 시작.
\ : 뒤의 \d를 사용하기 위해서 사용, Java에서 \를 사용하기 위한 escape 문자.
\d : [0-9]와 동일, 숫자.
{3} : 숫자가 3개 온다.
- : 그냥 표현되는 문자열.
\, \d : 위와 동일.
{3,4} : 숫자가 3~4개가 온다.
-, \, \d : 위와 동일.
{4} : 숫자가 4개 온다.
$ : 패턴 문자열의 종료.

예제 2) 이베일
^0-9a-zA-Z@0-9a-zA-Z.[a-zA-Z]{2,3}$

^ : 패턴 문자열의 시작.
[0-9a-zA-Z] : 문자의 범위, 숫자와 알파벳.
() : 소괄호 안의 문자는 1개의 문자로 인식.
[-_.] : - 또는 또는 . 중 1개.
? : [-
.]가 없거나 한 개 있음.
[0-9a-zA-Z] : 숫자 또는 알파벳.
* : 위의 소괄호 안의 패턴을 지킨 문자 1개가 (1개인 이유는 소괄호 때문) 없거나 무수히 많을 수 있다.
@ : 그냥 표현되는 문자열.
0-9a-zA-Z* : 위와 동일.
. : \를 제외한 임의의 한 문자. ( 이건 의문이다.)
[a-zA-Z]{2,3} : 알파벳이 2개 또는 3개.
$ : 패턴 문자열의 종료.

profile
새내기개발자 성장기록

0개의 댓글