본문 바로가기
Python/Python_basic

정규 표현식 ④

by Mr.DonyStark 2024. 1. 28.

□ 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)

 

'Python > Python_basic' 카테고리의 다른 글

오류예외 처리  (1) 2024.01.30
클랙스/객체  (0) 2024.01.29
정규 표현식 ③  (1) 2024.01.28
정규 표현식 ②  (0) 2024.01.28
정규 표현식 ①  (0) 2024.01.26