[javascript] 정규 표현식에서의 그룹 참조

정규 표현식에서 그룹 참조는 매우 유용한 기능입니다. 이를 사용하여 일치한 그룹의 값을 추출하거나 재활용할 수 있습니다.

그룹 참조 문법

그룹을 정의하기 위해 괄호 ()를 사용합니다. 그리고 이를 참조하기 위해 백슬래시 \와 함께 숫자를 사용합니다. 예를 들어, (foo)와 같이 그룹을 정의했다면, 이를 참조할 때 \1을 사용합니다.

const regex = /([a-z]+) \1/;
const str = 'hello hello';
console.log(regex.test(str)); // true

위의 예제에서 ([a-z]+)는 문자 그룹이며, \1은 이전에 일치한 문자 그룹과 동일한 값을 참조하는 것을 나타냅니다.

사용 예시

  1. 그룹 값 추출: 이메일 주소에서 사용자명과 도메인을 각각 추출하고 싶을 때 그룹 참조를 사용할 수 있습니다.
const emailRegex = /^([a-z0-9._%+-]+)@([a-z0-9.-]+)\.([a-z]{2,})$/;
const email = 'example@test.com';
const match = email.match(emailRegex);
console.log(match[1]); // example
console.log(match[2]); // test
  1. 재사용: HTML 태그를 찾고 싶을 때도 정규 표현식의 그룹 참조를 사용할 수 있습니다.
const htmlRegex = /<(\w+)>(.*)<\/\1>/;
const html = '<h1>Hello</h1>';
const match = html.match(htmlRegex);
console.log(match[2]); // Hello

그룹 참조는 정규 표현식을 더욱 강력하게 만들어주며, 코드를 더 간결하고 효율적으로 만들어 줄 수 있습니다.

참고문헌: