string.upper() : 문자열의 모든 알파벳을 대문자로 변경한 새로운 문자열 반환
string.lower() : 문자열의 모든 알파벳을 소문자로 변경한 새로운 문자열 반환
string.isupper() : 문자열의 모든 문자가 대문자인지 확인하여 Boolean 반환
string.islower() : 문자열의 모든 문자가 소문자인지 확인하여 Boolean 반환
방법 1. replace(A, B) : A를 B로 변경 => replace(제거하려는 문자, '')
new_id = new_id.lower()
방법 2. re.sub(regex, replacement, str)
방법 3. 반복문으로 문자열을 돌면서, 모든 문자를 확인 후 제거
p = re.compile("[^a-z0-9-_.]")
new_id = p.sub("", new_id)
p = re.compile("[.]+")
new_id = p.sub(".", new_id)
strip(문자) : 인자로 전달된 문자를 문자열의 왼쪽과 오른쪽에서 제거
lstrip(문자) : 인자로 전달된 문자를 문자열의 왼쪽에서 제거
rstrip(문자) : 인자로 전달된 문자를 문자열의 오른쪽에서 제거
new_id = new_id.strip(".")
new_id = "a" if new_id == "" else new_id
new_id = new_id[0:15] if len(new_id) >= 16 else new_id
# 끝 마침표 제거
new_id = new_id.rstrip(".")
new_id = new_id + new_id[-1]*(3-len(new_id)) if len(new_id) <= 3 else new_id
import re
def solution(new_id):
# step 1
new_id = new_id.lower()
# step 2
p = re.compile("[^a-z0-9-_.]")
new_id = p.sub("", new_id)
# step 3
p = re.compile("[.]+")
new_id = p.sub(".", new_id)
# step 4
new_id = new_id.strip(".")
# step 5
new_id = "a" if new_id == "" else new_id
# step 6
new_id = new_id[0:15] if len(new_id) >= 16 else new_id
# 끝 마침표 제거
new_id = new_id.rstrip(".")
# step 7
new_id = new_id + new_id[-1]*(3-len(new_id)) if len(new_id) <= 3 else new_id
return new_id