regex 6

[정규 표현식] sub - 문자열 치환

sub(pattern, repl, string, count=0, flags=0) sub 함수를 사용하면 정규 표현식과 일치한 부분을 다른 문자로 치환할 수 있다. 이름, 전화번호 등 개인 정보를 마스킹하는 경우에 활용할 수 있다. 사용 방법 매개변수로 패턴과 치환 문자열(repl), 치환 대상 문자열(string)을 전달받는다. 패턴을 찾지 못하면 전달받은 string을 변경하지 않고 반환한다. 예로 들어, 아래와 같은 휴대전화 번호 목록이 있다고 하자. 010-1234-5678 010-0000-0000 010-9876-5432 휴대전화 번호는 개인을 식별할 수 있는 정보이기 때문에 가운데 4개 숫자만 ****로 마스킹하고자 한다. sub 함수에서도 그룹 재참조가 가능하다. 따라서 첫 번째 자리와 세 번..

Python 2022.08.31

[정규 표현식] 전방 탐색

전방 탐색 일치한 영역을 발견해도 그 값을 반환하지 않는 패턴을 의미한다. 하위 표현식으로, ?=라는 구문으로 시작해 등호 다음에 일치할 문자열이 온다. 💡 문자열 소비 정규 표헌식 관련 문서에서 일치하는 영역을 반환하는 동작을 '소비한다'라고 표현한다. 전방 탐색의 경우에는 문자열을 소비하지 않는다. 전방 탐색에는 긍정형과 부정형이 있다. 예시를 통해 알아보도록 하겠다. 긍정형 전방 탐색 (예시) 아래와 같은 웹 주소에서 http, https, ftp와 같은 값만 추출하려고 한다. http://www.forta.com https://mail.forta.com ftp://ftp.forta.com 추출하고자 하는 문자열이 ':' 이전이므로 기본적으로 아래와 같은 패턴으로 찾을 수 있다. .+:# 하나 이상..

기타 2022.08.30

[정규 표현식] Group

() : Group 특정 문자가 아니라, 특정 문자열이 반복되는지 확인할 때에는 () 메타 문자를 이용해 문자열을 그룹화하여 확인할 수 있다. import re g = re.search('(ABC)+', 'ABCABCABC OK?') print(g) re.groups() () 메타 문자로 확인한 문자열 목록을 튜플 형태로 반환한다. import re g = re.search(r'(\d{2})-(\d{3,4})-(\d{4})', '02-123-1234') print(g.groups()) re.group(int) () 메타문자로 확인한 문자열을 반환한다. 매개변수로 전달된 값이 없거나 0인 경우에는 일치한 모든 문자열을 반환한다. 매개변수로 전달된 값이 0이 아닌 숫자 n인 경우에는 n번째 그룹에 일치한 문..

Python 2022.08.29

[정규 표현식] 메타 문자

메타 문자 2022.08.25 - 정규 표현식 (Regular Expressions)에서 다루지 않은 메타 문자를 정리하고자 한다. | OR과 동일하다. A|B라는 정규식은 A 또는 B라는 의미다. import re print(re.search('Crow|Servo', 'CrowHello')) ^ 문자열의 맨 처음과 일치함을 의미한다. import re print(re.search('^Life', 'Life is too short')) print(re.search('^Life', 'My Life')) My Life는 Life가 맨 처음에 위치하고 있지 않아 None을 반환한다. $ 문자열의 끝과 일치함을 의미한다. import re print(re.search('short$', 'Life is too s..

기타 2022.08.27

[Python] re - 정규 표현식을 이용한 문자열 검색

re 파이썬의 기본 라이브러리 중 하나로 정규 표현식을 지원하기 위한 모듈이다. re는 regualr expression의 약자다. 사용법 기본 라이브러리이므로 별도 설치 없이 import하여 사용할 수 있다. import re p = re.compile('ab*') re 모듈은 4개의 문자열 검색 모듈을 제공한다. match 문자열의 처음부터 시작해서 정규식이 일치하는지 확인한다. match 객체 또는 None을 반환한다. import re print(re.match('[a-z]+', 'python')) print(re.match('[a-z]+', '3 python')) 문자열 "3 python"의 경우, 처음에 위치한 3이 [a-z]+을 만족하지 않아 None을 반환한다. search 문자열 전체를 ..

Python 2022.08.26

정규 표현식 (Regular Expressions)

정규 표현식 Regular Expressions. 정규식이라고도 말한다. 복잡한 문자열을 처리할 때 사용하는 기법으로 문자열을 처리하는 모든 곳에서 사용한다. 정규 표현식을 사용하면 주민등록번호, 전화번호, 이메일 등 일정한 패턴을 가진 문자열을 보다 쉽게 다룰 수 있다. 정규 표현식에서는 아래의 메타 문자를 사용하는데, . ^ $ * + ? { } [ ] \ | ( ) 이 글에서는 각 메타 문자의 의미를 정리할 것이다. [ ] 문자 클래스 [ ] 사이의 문자들 중 하나를 찾는다. 예로 들어 [abc]의 경우 a, b, c 중 한 개의 문자를 찾겠다는 의미다. [ ] 내에 -를 사용하면 두 문자 사이의 범위를 의미한다. [a-c] : [abc]와 같다. [0-5] : [012345]와 같다. [a-zA-..

기타 2022.08.25
1