[reg] BackReference
목차

08. 역참조 사용하기

역참조로 찾기

치환 작업 수행하기

대소문자 변환하기

08. 역참조 사용하기

2022년 9월 9일
  • 역참조란? 정규표현식 패턴으로, 앞서 일치한 부분을 다시 가리킴 🔑 역참조를 변수와 비슷하게 생각해도 됨 🔑

역참조로 찾기

예시비교

- 예시
today, I feel like like blue.
i i think this is just part of of my life.
대입식매칭결과
[ ]+(\w+)[ ]+\1today, I feel like like blue i ithink this is just part of of my life.

📌 \1는 앞서 일치한 하위표현식을 참조함을 의미함

* `\1`은 정확히 처음 사용한 하위표현식과 일치한다는 뜻
* `\2` -> 두번째 하위표현식 참조
* `\3` -> 세번째 하위표현식 참조

📌 역참조 문법은 정규표현식 구현에 따라 크게 다름(자바스크립트는 역슬래시(\)대신에 달러($)표시를 사용) 📌 역참조는 참조하는 표현식이 하위표현식일 때(하위표현식 괄호로 감싸져 있을때)만 동작 📌 \0 이라고 하면 표현식 전체를 의미함

치환 작업 수행하기

예시비교

- 예시
010-2341-5679
대입식치환식
(\d{3})(-)(\d{4})(-)(\d{4})($(1)) $(3)-$(5)
치환결과
(010) 2341-5679

📌 010-2341-5679를 5개로 쪼개어 치환작업을 하였다.

대소문자 변환하기

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

예시비교

- 예시
<H1>Welcome to my home</H1>
대입식치환식
(<Hh>1)(.*?)(</Hh>1)$1\U$2\E$3
치환결과
<H1>WELCOME TO MY HOME</H1>

📌 역참조는 텍스트를 검색하고(match), 치환(replce)하는데 매우 유용하다