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


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

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

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

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

  • 2016년 05월 15일에 작성됨

조회수 220


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_
  • 2016년 05월 16일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

  • 감사합니다!    Ra-dia   2016.5.16 11:55     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close