자바스크립트 정규식의 replace 메서드에서의 캡처 그룹
replace 메서드를 사용할 때,
정규식에서 어떤 것을 캡처 그룹에 넣으면,
대체 문자열 내에서 달러 기호 $
와 캡처 그룹 번호를 작성하여 해당 캡처 그룹의
내용을 삽입할 수 있습니다. 예를 들어, $1 - 첫 번째
캡처 그룹, $2 - 두 번째 캡처 그룹 등입니다.
이것이 왜 필요한지 그리고 어떻게 사용하는지 예제를 통해 살펴보겠습니다.
예제
모든 숫자를 찾아서 그 숫자들을 괄호 안에 넣은 형태로 대체해 봅시다. 이를 위해 발견된 모든 숫자를 괄호 안에 들어간 자신으로 대체할 것입니다:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
결과 변수에는 다음과 같은 문자열이 기록됩니다:
'(1) (23) (456) xax'
예제
주변에 'x'가 있는 모든 숫자 문자열을 찾아서
그 숫자들을 '!' 기호로 둘러싼 형태로
대체해 봅시다:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
결과 변수에는 다음과 같은 문자열이 기록됩니다:
'!1! !23! !456! xax'
예제
다음 문제를 해결해 봅시다: 'aaa@bbb' 형태의 문자열이
주어집니다 - 글자, 그 다음 @ 기호, 그 다음 글자입니다.
@ 앞과 뒤의 글자들을 서로 바꿔야 합니다.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
결과 변수에는 다음과 같은 문자열이 기록됩니다:
'bbb@aaa ddd@ccc'
실습 문제
다음 문자열이 주어집니다:
let str = '12 34 56 78';
모든 두 자리 숫자에서 숫자들의 위치를 바꾸세요.
날짜 문자열이 주어집니다:
let str = '31.12.2025';
이 날짜를 '2025.12.31' 형식으로 변환하세요.