티스토리 뷰
반응형
정규 표현식이라고 들어봤는가? 복작한 문자열을 처리할때 사용하는 기법으로 , 파이썬에서만 사용하는 고유문법이 아니라 문자열을 처리하는 모든 곳에서 사용한다. 정규 표현식을 줄여서 <정규식>이라고 말한다.
정규 표현식은 왜 필요할까?
회원들의 주민번호를 관리하는데 주민번호 뒷자리를 * 문자로 변경을 해야한다고 가정을 해보자.
우리가 정규식을 모른다면 숫자+하이프(-)+숫자로 되어 있는 텍스트를 주민번호 뒷자리만 *문자로 바꾸려면 아래와 같이 작성을 해야할것이다.
1.전체 텍스트를 공백 문자로 나눈다(split)
2.나뉜 단어가 주민번호형식 인지 확인한다.
3.단어가 주민등록번호 형식이라면 뒷자리를 *로 변환한다.
4.나뉜 단어를 다시 조립한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | data = """ kim 880102-1768451 park 991207-2657452 """ result = [] for line in data.split("\n"): word_result = [] for word in line.split(" "): if len(word) == 14 and word[:6].isdigit() and word[7:].isdigit(): word = word[:6] + "-" + "*******" word_result.append(word) result.append(" ".join(word_result)) print("\n".join(result)) | cs |
1 2 3 | 결과값: kim 880102-******* park 991207-******* | cs |
반면에 정규식을 사용하면 아래와 같이 훨씬 간편하고 직관적인 코드를 작성할수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import re data = """ park 880102-1049118 kim 991207-1059119 """ pat = re.compile("(\d{6})[-]\d{7}") print(pat.sub("\g<1>-*******", data)) 결과값: kim 880102-******* park 991207-******* | cs |
반응형
댓글
반응형