코딩테스트
구현18.프로그래머스 신규아이디 추천
Giant Oreo
2021. 5. 7. 19:56
* 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 : 숫자
[] 안에서 -를 제외한 특수문자는 이스케이프가 필요없다.