💡 Python 3
신규 아이디 추천 [Link]
할 때마다 새로운 정규 표현식
def solution(new_id):
import re
answer = new_id.lower()
answer = re.sub(r'[^0-9a-z-_.]','', answer)
answer = re.sub('(([.])\\2{1,})', '.', answer)
answer = re.sub('^[.]', '', answer)
answer = re.sub('[.]$', '', answer)
if answer == '': answer = 'a'
if len(answer) >= 16: answer = answer[:15]
answer = re.sub('[.]$', '', answer)
if len(answer) <= 2:
t = answer[-1]
while len(answer) != 3:
answer += t
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
[Python] 정규표현식 기본 re :: regular expression
[Python] 정규식 연속 중복 문자 제거
정규표현식 (regex)
정규식 HOWTO¶