치환 문자열에서 캡처한 값을 다시 꺼내 써
re.sub, sed, 정규식을 받는 문자열 치환 API는 매칭할 때 캡처한 그룹을 새 문자열의 재료로 사용할 수 있어. 도구마다 표기법이 다르니 같은 패턴을 옮길 때 특히 조심해야 해.
- Python
re.sub:\1,\2, 이름 그룹은\g<name> - JavaScript
replace:$1,$2, 이름 그룹은$<name> - sed:
\1,\2 ripgrep --replace:$1,$2,$name
캡처 순서를 바꿔 형식을 변환해
re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', text)는 2026-05-04를 05/04/2026로 바꿔. 같은 세 조각을 다시 찾을 필요 없이 치환 문자열에서 월, 일, 연도의 순서만 바꾼 거야.
전체 매칭도 그룹 0으로 참조할 수 있어
re.sub(r'\d+', r'[\g<0>]', text)는 찾은 숫자 전체를 대괄호로 감싸. Python에서는 \g<0>, JavaScript에서는 $&, sed에서는 &가 전체 매칭을 가리켜.
문자열만으로 부족하면 함수를 넘겨
Python의 re.sub(pattern, callable, text)처럼 일치 객체를 받아 새 문자열을 돌려주는 함수를 치환자로 쓸 수 있어. 대소문자 변환, 표 조회, 조건에 따른 재작성처럼 캡처 순서만 바꾸는 것으로는 부족한 작업을 이 방식으로 처리해.