본문으로 건너뛰기

역참조 사용하기

역참조로 찾기

역참조(backreferences)는 앞에 나온 표현을 역으로 가리킵니다.

역참조를 변수라고 생각할 수 있습니다.

예시:

[ ]+(\w+)[ ]+\1
[ ]+(\w+)[ ]+\1

예시의 \1은 첫 번째 하위 표현식을 참조하며, 이는 (\w+)을 참조한다는 것을 의미합니다.

참고

역참조 구문은 정규 표현식 구현에 따라 크게 다릅니다.

자바스크립트에서는 \를 사용합니다.

다음 정규 표현식은 역참조를 이용해 짝이 맞는 헤더 태그만 찾습니다.

<[hH]([1-6])>/*?<\/[hH]\1>
<[hH]([1-6])>/*?<\/[hH]\1>

일치하는 부분을 참조하는 숫자는 주로 1부터 시작합니다. 많은 구현에서 0번째 참조는 표현식 전체를 가리킵니다.

참고

일부 정규 표현식 구현은 '이름 붙여 저장하기' 기능을 지원합니다. 각 하위 표현식에 고유한 이름을 줄 수 있습니다.

치환 작업 수행하기

이메일 주소에 링크를 걸고 싶다면 다음과 같이 정규 표현식을 활용할 수 있습니다.

예문:

Hello, ben@forta.com is my email address.
Hello, ben@forta.com is my email address.

정규 표현식:

(\w+[\w.]*@[\w.]+\.\w+)
(\w+[\w.]*@[\w.]+\.\w+)

치환:

<a href="mailto:$1">$1<\a>
<a href="mailto:$1">$1<\a>

결과:

html
Hello, <a href="mailto:ben@forta.com">ben@forta.com<\a> is my email address.</a>
html
Hello, <a href="mailto:ben@forta.com">ben@forta.com<\a> is my email address.</a>

자바스크립트에서는 $로 역참조를 사용합니다.

예시에서 확인할 수 있듯이 동일한 역참조를 여러 번 사용할 수 있습니다.

대소문자 변환하기

일부 정규 표현식 구현에서는 다음 메타 문자를 지원합니다.

메타 문자설명
\E\L이나 \U 변환을 끝냄
\l다음에 오는 글자를 소문자로 변환
\L\E를 만날 때까지 모든 문자를 소문자로 변환
\u다음에 오는 글자를 대문자로 변환
\U\E를 만날 때까지 모든 문자를 대문자로 변환