역참조 사용하기
역참조로 찾기
역참조(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 를 만날 때까지 모든 문자를 대문자로 변환 |