728x90
https://school.programmers.co.kr/learn/courses/30/lessons/72410
import re
def solution(new_id):
answer = ''
# 1 ~ 3
new_id = new_id.lower()
new_id = re.sub('[^a-z0-9\-\_\.]', '', new_id)
new_id = re.sub('\.+','.',new_id)
# 4
try:
if new_id[0] == '.':
new_id = new_id[1:]
if new_id[-1] == '.':
new_id = new_id[0:-1]
except:
pass
#5
if new_id == "":
new_id = "a"
#new_id = re.sub('\s',"a",new_id)
#print(new_id, " #5")
#6
if len(new_id) >= 16:
new_id = new_id[:15]
try:
if new_id[-1] == '.':
new_id = new_id[0:-1]
except:
pass
#7
if len(new_id) == 1:
new_id = new_id + new_id[-1]*2
if len(new_id) == 2:
new_id = new_id + new_id[-1]
answer = new_id
return answer
좋아요 많은 코드
import re
def solution(new_id):
st = new_id
st = st.lower()
st = re.sub('[^a-z0-9\-_.]', '', st)
st = re.sub('\.+', '.', st)
st = re.sub('^[.]|[.]$', '', st)
st = 'a' if len(st) == 0 else st[:15]
st = re.sub('^[.]|[.]$', '', st)
st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
return st
- 정규표현식 문제
728x90
'Coding Test > programmers' 카테고리의 다른 글
[Python] 파이썬 프로그래머스 메뉴 리뉴얼 (1) | 2022.08.19 |
---|---|
[Python] 파이썬 프로그래머스 올바른 괄호 (0) | 2022.08.16 |
[Python] 파이썬 프로그래머스 로또의 최고 순위와 최저 순위 (0) | 2022.08.01 |
[Python] 파이썬 프로그래머스 짝지어 제거하기 (0) | 2022.07.31 |
[Python] 파이썬 프로그래머스 신고 결과 받기 (0) | 2022.07.30 |