[REGEX] Substitude
Programming/Python 2016. 10. 9. 22:24 |sub 메서드를 이용하면 정규식과 매치되는 부분을 다른 문자로 쉽게 바꿀 수 있다.
sub 메서드의 첫 번째 입력 인수는 "바꿀 문자열"이 되고, 두 번째 입력 인수는 "대상 문자열"이 된다.
바꾸기 횟수를 제어하려면 다음과 같은 세 번째 입력 인수로 count값을 넘기면 된다.
comp.sub('colour', 'blue socks and red shoes', count=1)
subn 역시 sub와 동일한 기능을 하지만 리턴되는 결과를 튜플로 리턴한다는 차이가 있다. 리턴된 튜플의 첫 번째 요소는 변경된 문자열이고, 두 번째 요소는 바꾸기가 발생한 횟수이다.
sub 메서드 사용 시 참조 구문 사용하기
위 예는 "이름 + 전화번호"의 문자열을 "전화번호 + 이름" 으로 바꾸는 예이다. sub의 바꿀 문자열 부분에 "\g<그룹명> 을 이용하면 정규식의 그룹명을 참조 할 수 있다.
그룹명 대신 참조 번호를 이용해도 마찬가지의 결과가 리턴된다.
sub 메서드의 입력 인수로 함수 넣기
sub 메서드의 첫 번째 입력 인수로 함수를 넣을 수도 있다.
Dec2Hex 함수는 match 객체(위에서 숫자에 마치되는)를 입력으로 받아 16진수로 변환하여 리턴하는 함수이다. sub의 첫 번째 입력 인수로 함수를 사용할 경우, 해당 함수의 첫 번째 입력 인수에는 정규식과 매치된 match 객체가 입력된다. 그리고 매치되는 문자열은 함수의 리턴 값으로 바뀌게 된다.
Example
전화번호의 마지막 숫자 4개를 #으로 변경하는 예제
'Programming > Python' 카테고리의 다른 글
[REGEX] 전방 탐색 (Lookahead Assertions), 후방 탐색 (0) | 2016.10.08 |
---|---|
[REGEX] 그룹 재활용 (0) | 2016.10.08 |
Python Function : any(), all() (0) | 2014.09.15 |
이진 트리 (0) | 2013.05.31 |
bisect Module (0) | 2013.05.17 |