본문 바로가기

코딩테스트

구현18.프로그래머스 신규아이디 추천

* sub(pattern, replace, string, count=0)

주어진 String에서 pattern과 일치하는 모든 것을 replace로 교체하고, 결과를 str타입으로 반환한다.

count는 최대 몇 번까지 교체할 것인가를 설정하는 인자.

count가 0이면 모든 인자가 replace로 교체될 것이며, 0보다 크면 그 횟수만큼 교체된다.(음수 설정 불가)

import re

def solution(new_id):
	answer = ''
    answer = re.sub('[^a-z\d\-_.]','',new_id.lower())
    answer = re.sub('\.\.+','.',answer)
    answer = re.sub('^\.|\.$','',answer)
    if answer == '':
    	answer = 'a'
    answer = re.sub('\.$','',answer[:15])
    while len(answer)<3:
    	answer += answer[-1:]
    return answer

 

정규표현식

[^] : not의 의미

^: 시작

$: 끝

\d : 숫자

[] 안에서 -를 제외한 특수문자는 이스케이프가 필요없다.