ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java]STEP1 - 19) 정규 표현식과 Pattern 클래스
    개발 공부/Java 2020. 10. 17. 17:01

     

    본 게시글은 도서 "이것이 자바다" 동영상 강의를 듣고 기록하는 TIL(Today I Learned) 입니다.
    모든 저작권은 출판사 한빛미디어와 신용권님께 있음을 알립니다.👍

     

     

    이번 게시물에서는 문자열이 정해진 형식으로 구성되어 있는지 검증할 때 사용하는 정규 표현식과 Pattern 클래스에 대해서 알아보겠습니다.

     

     

    1. 정규 표현식(Regular Expression)


    정규 표현식을 작성하는 방법은 JAVA API 도큐먼트에서 java.util.regex.Pattern 클래스를 찾아 Summary of regular-expression constructs 를 참조하면 된다.

     

    정규 표현식문자 또는 숫자 기호와 반복 기호가 결합된 문자열로써, 어느 문자열이 정해져 있는 형식을 만족하는지 검사할 때 사용한다.

    기호 설명
    [ ] 한 개의 문자
    [abc] : a, b, c 중 하나의 문자
    [^abc] : a, b, c 이외의 하나의 문자
    [a-zA-Z] : a~z, A~Z 중 하나의 문자
    \d 한 개의 숫자
    \s 공백
    \w 한 개의 알파벳 또는 한 개의 숫자
    ? 없음 또는 한 개
    * 없음 또는 한 개 이상
    + 한 개 이상
    {n} 정확히 n개
    {n,} 최소한 n개
    {n, m} n개에서부터 m개까지
    ( ) 그룹핑

     

    예를 들어 다음은 각각 전화번호와 이메일을 검사하기 위한 정규 표현식이다.

    전화번호 : (02|010)-\d{3,4}-\d{4}
    이메일 : \w+@\w+\.\w+(\.\w+)?

     

    전화번호

    02 또는 010으로 시작하고,

    가운데가 3자리 또는 4자리의 숫자이며,

    끝이 4자리 숫자라는 뜻이다.

     

    이메일은 한 개 이상의 알파벳 혹은 숫자가 오고,

    @가 온 다음,

    한 개 이상의 알파벳 혹은 숫자가 오고,

    .(점)이 온다.

    그리고 한 개 이상의 알파벳 혹은 숫자가 오고,

    .(점)과 한 개 이상의 알파벳 혹은 숫자가 또 오거나 없을 수 있다는 뜻이다.

     


     

    2. Pattern 클래스


    앞서 정규 표현식의 기호와 작성 방법에 대해서 알아보았다. 이번에는 정규 표현식으로 문자열을 검증하는 방법에 대해서 알아보겠다.

     

    문자열을 정규 표현식으로 검증하는 기능은 java.util.regex.Pattern 클래스의 정적 메소드인 matches() 메소드가 제공한다.

    boolean result = Pattern.matches("정규 표현식", "검증할 문자열");

    matches() 메소드의 첫 번째 매개 값으로 정규 표현식이 오고, 두 번째 매개 값으로 검증할 문자열이 온다.

    따라서 정규 표현식과 검증할 문자열이 일치하면 true를 반환하고, 일치하지 않으면 false를 반환한다.

     

    String regExp = "(02|010)-\d{3,4}-\d{4}";
    String data = "010-123-4567";
    boolean result = Pattern.matches(regExp, data);

    위 처럼 코드가 작성되어 있을 때, data는 정규 표현식인 regExp를 잘 지켜서 작성 되었기 때문에
    result 값에는 true가 들어간다.

     

     

    본 게시글은 여기서 마치겠습니다.

    읽어주셔서 감사하고, 혹시나 틀린 부분이나 보완해야할 부분이 있다면 댓글에 남겨주세요~!

    댓글

Designed by Tistory.