import re
#----------------------------------------------------------------------
#[ ,:] 로 자르고 [ ,:] 빼고 반환
find_string = 'hello, world, song! he:e??'
target_string = '[.|,|!|?|s|:| ]'
result_string = re.split(target_string, find_string)
print(result_string)
#----------------------------------------------------------------------
#특정 단어 찾기
find_string = 'ababababa'
target_string = 'aba'
regex = re.compile(f'({target_string})')
result_string = regex.findall(find_string)
print(result_string)
#----------------------------------------------------------------------
#특정 단어 치환
find_string = "(hello) 1213 (song+hee) 0121"
target_string = "[(\.+)]"
regex = re.compile(target_string)
result_string = regex.sub(" ", find_string) #공백치환
print("치환 방법1",result_string)
result_string2 = re.compile("[(\.+)]").sub(" ", find_string) #한번에 쓰기
print("치환 방법2",result_string2)
result_string3 = re.sub("[(\.+)]", " ", find_string) #re.sub(정규 표현식, 대상 문자열 , 치환 문자)
print("치환 방법3",result_string3)
#----------------------------------------------------------------------
#매칭된 그룹 가지고 와서 치환
#\\1은 1번으로 매칭된 그룹을 가져오는 것
find_string = "zepelepenapa papapripikapa"
regex = re.compile("(a|e|i|o|u)p(a|e|i|o|u)");
print("매칭그룹 치환", re.sub(regex, "\\1", find_string))
#----------------------------------------------------------------------
#문자열의 처음부터 정규식과 매치되는지 조사하고 맞으면 해당 문자열 반환
find_string = "python"
regex = re.compile(find_string)
result_string = regex.match( 'python temp')
if result_string:
print('매칭: ', result_string.group())
else:
print('매칭 없음')
#----------------------------------------------------------------------
#문자열의 전체에서 정규식과 매치되는지 조사하고 맞으면 해당 문자열 반환
find_string = "python"
regex = re.compile(find_string)
result_string = regex.search( 'asdasd python asdsd python')
if result_string:
print('매칭: ', result_string.group())
else:
print('매칭 없음')
#대문자 or 숫자 or - and FBI and 대문자 or 숫자 or 찾기
regex = re.compile("[A-Z0-9\-]*FBI[A-Z0-9\-]*")
#p앞뒤로 a e i o u 매칭 찾기
regex = re.compile("(a|e|i|o|u)p(a|e|i|o|u)");
#A, a, E, e, I, i, O, o, U, u
regex = re.compile("[AaEeIiOoUu]")
#시작도 숫자 끝도 숫자 모두 숫자로만 구성돼있는지 확인
regex = re.compile("^([0-9]*)$")
#대소문자 구분 없이 니모(Nemo) 찾기
regex = re.compile("([nN][eE][mM][oO])")
#
phone_number =["01033334444", "**4444", "027778888", "**8888"]
def solution(phone_number):
num = len(phone_number)-4
replace_txt = phone_number[:num]
replace_number = re.sub('[0-9]', '', replace_txt)
answer = replace_number + phone_number[-4:]
return answer
def hide_numbers(s):
return ""(len(s)-4) + s[-4:]
solution(phone_number)
'코테풀이 > 코테용 파이썬 문법' 카테고리의 다른 글
재귀함수, DFS를 시각화로 보여주는 사이트 (0) | 2022.07.21 |
---|---|
BFS, DFS (0) | 2022.07.01 |
문자열_알파벳_한글_숫자_특수문자_구분 (0) | 2022.07.01 |
람다_딕셔너리_튜플_정렬 (0) | 2022.07.01 |
0_사용_import (0) | 2022.07.01 |
문자열_정규식_정규식패턴