* 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 : 숫자
[] 안에서 -를 제외한 특수문자는 이스케이프가 필요없다.
'코딩테스트' 카테고리의 다른 글
스택과 큐2. 백준10845번 큐 (0) | 2021.05.11 |
---|---|
스택1. 백준 10828번 스택 (0) | 2021.05.07 |
구현17.프로그래머스 소수만들기 파이썬 (0) | 2021.05.06 |
구현16.백준3460번 이진수 (0) | 2021.05.06 |
구현15.백준10809번 알파벳 찾기 (0) | 2021.05.06 |