□ findall : 정규표현과 매칭되는 모든 문자열을 리스트 객체로 리턴함
import re
# 패턴지정 : 소문자 a~z까지 해당하는 단어가 하나이상이면 모두 추출
new_pattern = re.compile('[a-z]+')
find_all_new_pattern = new_pattern.findall('Game of Life in Python')
print(find_all_new_pattern) # 출력 : ['ame', 'of', 'ife', 'in', 'ython']
# 패턴지정 : 대문자 A~z까지, 소문자 a~z까지 해당하는 단어가 하나이상이면 모두 추출
new_pattern_second = re.compile('[A-Za-z]+')
find_all_new_pattern_second = new_pattern_second.findall('Game of Life in Python')
print(find_all_new_pattern_second) #출력 : ['Game', 'of', 'Life', 'in', 'Python']
□ 예제 1 : match와 search 차이
# 패턴지정 : 영어 소문자 a ~ z
rule = re.compile('[a-z]')
#match는 문자열 처음부터 정규식과 매칭되는 패턴찾아 리턴
rule_match = rule.match('Dave')
print(rule_match) # 결과 None : match는 첫번째부터 조회하므로 Dave는 첫글자까 대문자이기에 None 출력
#search는 문자열 전체를 검색해서 정규식과 매칭되는 패턴 찾아 리턴
rule_search = rule.search('Dave')
print(rule_search) #match : search는 문자열 전체를 조회하므로 매칭됨
□ 예제 2 : + 는 최소 1번 이상을 의미
# 패턴지정 : 소문자 a~z까지 중 하나의 단어가 1번이상나오는지?
new_pattern_third = re.compile('[a-z]+')
find_all_new_pattern_third = new_pattern_third.findall('GAME')
if len(find_all_new_pattern_third) > 0:
print('매칭 단어있음')
else:
print('매칭 단어없음') #결과 매칭단어없음
□ 예제 3 : .sub(규칙, 변경결과값, 변경할 데이터)
# 패턴 지정 및 해당 내용 대체시 .sub 사용
# -뒤로 숫자 0~9까지 7자리는 -******* 로 바꿔라
back_num = re.sub('-[0-9]{7}','-*******','123412-1234123') # -뒤를 모두 *로 처리
print(back_num)