[JS] 정규식의 캡처 그룹

선우·2025년 6월 16일
post-thumbnail

🔍 캡처 그룹(Capturing Group)란?

💡 정규식 안에서 특정 부분을 소괄호()로 감싸서 기억시키는 기능이다.
즉, 특정 부분을 추출하거나 나중에 다시 참조할 수 있게 만들어주는 것이다.

✨ 캡처 그룹 파헤치기

  • 사용 문법
const str = "이름: 홍길동, 나이: 38";
const regex = /이름: (\w+), 나이: (\d+)/;
const result = str.match(regex);

console.log(result) // ['이름: 홍길동, 나이: 38', '홍길동', '38']

📌 여기서 (\w+)는 문자열을, (\d+)는 숫자를 캡처한 것이다.

result

  • 0번째 인덱스
    • 작성한 정규식에 캡처 그룹을 포함한 값을 반환
  • n번째 인덱스
    • n번째 캡처 그룹의 값을 반환

✅ 활용 예시

1. 이메일 주소에서 ID와 도메인 추출하기

const address = "iamxunwoo@gmail.com";
const [_, email, domain] = address.match(/(\w+)@(\w+\.\w+)/);
console.log(`email: ${email}, domain: ${domain}`) // email: iamxunwoo, domain: gmail.com

2. 날짜 포맷 변환

const date = "2025-06-16";
const regex = /(\d{4})-(\d{2})-(\d{2})/;
const formattedDate = date.replace(regex, "/$3/$2/$1");
console.log(formattedDate) // '16/06/2025'
  • replace() 함수에서 $1, $2, $3은 각각 캡처 그룹을 의미한다.

🪄 주의사항

  • match는 첫 번째 일치 결과만 가져오므로 g 플래그가 있는 경우에는 matchAll()을 사용하는 게 좋다.

📝 정리

  • 정규식 캡처 그룹을 잘 이용하면 문자열을 가공할 때 강력한 도구가 될 수 있다.

0개의 댓글