정규표현식 예제 질문입니다.
조회수 1813회
단일 스페이스로 구분된 하나 이상의 알파벳으로 구성된 그룹을 찾는 정규표현식이
^([[:alpha:]]+ ?)+$
인데 왜 이렇게 되는지 모르겠습니다.
^
과 $
이 시작과 끝 인건 알겠는데
그 사이의 ([[:alpha:]]+ ?)+ 가 무엇인지 정확히 모르겠네요.
1 답변
-
[[:alpha:]] 알파벳 글자셋을 의미하며, 임의의 알파벳 한글자와 매칭됩니다.
+ 출연횟수 연산자로, 1..more (한개 이상)을 의미합니다.
? 출연횟수 연산자로, 0..1 (0 혹은 1)을 의미합니다.
( ) 정규식 매칭 그룹니다.
A. 순서대로 해석해보면.
[[:alpha:]]
B. 임의의 알파벳 한글자입니다.
[[:alpha:]]+
C. 한 개이상의 연속된 알파벳으로 구성된 문자열입니다.
[[:alpha:]]+ ?
D. 한 개이상의 연속된 알파벳으로 구성된 문자열이 나타난 후, 공백(스페이스)가 한개 출연하거나 출연하지 않을 수 있습니다.
([[:alpha:]]+ ?)+
앞의 패턴 D가 한 번이상 반복되는 문자열이어야 합니다.
따라서, 다음과 같은 문자열은 편의상 공백은 _(언더바)로 표현하겠습니다.)
aa_bb_ccc
- aa_
- bb_
- ccc
로 D가 3번 나타나서 정규식을 만족합니다.
aa_bb_ccc_
위와 같이 공백한글자가 더 들어간 경우도 허용됩니다.
- aa_
- bb_
- ccc_
댓글 입력