[TIL] 정규표현식

1408 단어 pythonpython

정규표현식 (re)

정규표현식은 복잡한 문자열을 처리할 때 사용한다.

메타 문자

search, match

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밖에 나오지 않는다.

findall

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']

좋은 웹페이지 즐겨찾기