정규표현식 예제 질문입니다.

단일 스페이스로 구분된 하나 이상의 알파벳으로 구성된 그룹을 찾는 정규표현식이

^([[:alpha:]]+ ?)+$ 인데 왜 이렇게 되는지 모르겠습니다.

^$이 시작과 끝 인건 알겠는데

그 사이의 ([[:alpha:]]+ ?)+ 가 무엇인지 정확히 모르겠네요.

1답변

  • 좋아요

    2

    싫어요
    채택취소하기

    [[:alpha:]] 알파벳 글자셋을 의미하며, 임의의 알파벳 한글자와 매칭됩니다.

    + 출연횟수 연산자로, 1..more (한개 이상)을 의미합니다.

    ? 출연횟수 연산자로, 0..1 (0 혹은 1)을 의미합니다.

    ( ) 정규식 매칭 그룹니다.

    A. 순서대로 해석해보면.

    [[:alpha:]]
    

    B. 임의의 알파벳 한글자입니다.

    [[:alpha:]]+
    

    C. 한 개이상의 연속된 알파벳으로 구성된 문자열입니다.

    [[:alpha:]]+ ?
    

    D. 한 개이상의 연속된 알파벳으로 구성된 문자열이 나타난 후, 공백(스페이스)가 한개 출연하거나 출연하지 않을 수 있습니다.

    ([[:alpha:]]+ ?)+
    

    앞의 패턴 D가 한 번이상 반복되는 문자열이어야 합니다.

    따라서, 다음과 같은 문자열은 편의상 공백은 _(언더바)로 표현하겠습니다.)

    aa_bb_ccc
    
    1. aa_
    2. bb_
    3. ccc

    로 D가 3번 나타나서 정규식을 만족합니다.

    aa_bb_ccc_
    

    위와 같이 공백한글자가 더 들어간 경우도 허용됩니다.

    1. aa_
    2. bb_
    3. ccc_
    • 감사합니다! Ra-dia 2016.5.16 11:55

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.