상세 컨텐츠

본문 제목

[Python] 정규식 sub함수

coding

by golduny_zoo 2021. 5. 6. 14:31

본문

728x90

프로그래머스 신규아이디 추천 문제를 정규식으로 문제를 푸신 분들의 풀이를 뜯어보면서

정규식 sub함수에 대해 익혀볼 생각이다. 

re.sub(정규 표현식, 치환 문자, 대상 문자열

정규 표현식 - 검색 패턴을 지정

치환 문자 - 변경하고 싶은 문자
대상 문자열 - 검색 대상이 되는 문자열

st = re.sub('[^a-z0-9\-_.]', '', st) # st에서 a~z, 0~9, -_.가 아닌 문자를 ''로 치환
# [^a-z0-9\-_.] -> ^ = 포함하지 않는, \ = 특수문자를 문자로 사용

st = re.sub('\.+', '.', st) # st에서 '.'이 한개 이상있으면 '.'으로 치환
# + = 앞의 문자가 1개 이상

st = re.sub('^[.]|[.]$', '', st) # st에서 '.'이 앞에 있거나 뒤에 있으면 ''으로 치환
# ^[] = []안의 문자가 맨 앞 , []$ = []안의 문자가 맨뒤

st = 'a' if len(st) == 0 else st[:15] # 만약 st의 길이가 0이면 'a', 아니면 st[0:15]
# 문자열도 리스트처럼 컴프리헨션이 되나?

st = re.sub('^[.]|[.]$', '', st) # st에서 '.'이 앞에 있거나 뒤에 있으면 ''으로 치환
# ^[] = []안의 문자가 맨 앞 , []$ = []안의 문자가 맨뒤

st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
# 만약 st의 길이가 2보다 크다면 st, 아니면 st에 st의 마지막을 3-st의 길이 만큼 더해라  

2021.05.06 - [분류 전체보기] - [coding_test] 신규아이디 추천

 

[coding_test] 신규아이디 추천

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이

golduny.tistory.com

 

관련글 더보기