그루핑
ABC 문자열이 계속해서 반복되는지 조사하는 정규식을 작성해야하는경우 필요한 것이 바로 그루핑(Grouping) 입니다.
정규식 표현은 다음과 같습니다.
'(ABC)+'
소괄호 그루핑
그룹을 만들어 주는 메타 문자는 바로 소괄호 () 입니다.
다음 예제를 예로 들겠습니다.
위 예제는 이름 + " " + 전화번호 형태의 정규식 패턴입니다. 이중에서 이름만 추출해 내고 싶다면 바로 그루핑을 적용하는것입니다.
다중 그루핑
한개 그루핑
두개 그루핑
두개이상의 그루핑
이름 부분에 해당하는 부분을 **(\w+)**로 그루핑 한다면 그부분의 문자열만 추출 할 수 있습니다.
group(인덱스) | 설명 |
---|---|
group(0) | 매치된 전체 문자열 |
group(1) | 첫 번째 그룹에 해당되는 문자열 |
group(2) | 두 번째 그룹에 해당되는 문자열 |
group(n) | n 번째 그룹에 해당되는 문자열 |
그루핑 변수선언 (네이밍)
정규식 안에 그룹이 상당히 많아 질 경우는 그룹이 10개만 되어도 가독성이 현저히 떨어 질 것입니다. 따라서 그룹을 직접 네이밍하여 코드의 가독성을 높이는 것이 좋습니다.
정규 표현식에서의 그루핑의 변수 선언은 다음과 같이 할 수 있습니다.(위의 핸드폰 추출 정규식의 예제 적용)
(?P\w+)\s+((\d+)[-]\d+[-]\d+)
위 예 에서 볼 수 있듯이 name 이라는 그룹이름으로 참조 할 수 있습니다. 그룹 이름을 사용하면 정규식 안에서 재참조 하는 것도 가능합니다.
Last updated