정규표현식은 복잡한 문자열을 처리할 때 사용한다.
import re
fruit_list = ["melon", "watermelon", "banana", "apple", "peach"]
for fruit in fruit_list:
if re.search('mel.n', fruit) :
print (fruit) # melon, watermelon
search 함수는 문자열에서 조건과 일치하는 패턴이 존재하는지 찾는 함수이다. search 함수와 비슷한 함수 중 match 함수가 있는데 match 함수와의 차이점은 match 함수는 문자열의 시작부터 패턴이 동일해야한다는 조건이 있지만, search 함수는 문자열의 중간이라도 패턴과 일치하는 부분이 있는가를 살펴본다는 것이다. 만약 위의 코드에서 re.search
가 아닌 re.match
를 썼다면 결과는 melon밖에 나오지 않는다.
re.findall('a', 'grandma likes acacia')
# ['a', 'a', 'a', 'a', 'a']
findall 함수는 문자열 중 패턴과 일치하는 모든 부분을 찾아서 리턴해준다. search 함수의 예제를 조금 변형시켜보면 다음과 같이 사용할 수 있다.
fruit_list = ["melon", "watermelon", "banana", "apple", "peach", "cherry", "pineapple"]
for fruit in fruit_list:
if re.findall('ch', fruit):
ch_list.append(fruit)
if re.findall('ea', fruit):
ea_list.append(fruit)
print(f'ch list : {ch_list}') # ['peach', 'cherry']
print(f'ea list : {ea_list}') # ['peach', 'pineapple']