그룹화와 캡처

Python 정규 표현식

Maria Eugenia Inzaugarat

Data Scientist

문자 그룹화

 

Python 정규 표현식

문자 그룹화

 

 

re.findall(r'[A-Za-z]+\s\w+\s\d+\s\w+', text)
['Clary has 2 friends', 'Susan has 3 brothers', 'John has 4 sisters']
Python 정규 표현식

캡처 그룹

 

  • 괄호를 사용해 문자를 그룹화하고 캡처합니다

 

Python 정규 표현식

캡처 그룹

 

  • 괄호를 사용해 문자를 그룹화하고 캡처합니다

 

re.findall(r'([A-Za-z]+)\s\w+\s\d+\s\w+', text)
['Clary', 'Susan', 'John']
Python 정규 표현식

캡처 그룹

 

 

Python 정규 표현식

캡처 그룹

 

 

re.findall(r'([A-Za-z]+)\s\w+\s(\d+)\s(\w+)', text)
[('Clary', '2', 'friends'),
 ('Susan', '3', 'brothers'),
 ('John', '4', 'sisters')]
Python 정규 표현식

캡처 그룹

  • 패턴 내 특정 하위 패턴과 매칭합니다
  • 이후 처리에 활용합니다
Python 정규 표현식

캡처 그룹

  • 데이터를 정리합니다
pets = re.findall(r'([A-Za-z]+)\s\w+\s(\d+)\s(\w+)', "Clary has 2 dogs but John has 3 cats")

pets[0][0]
'Clary'
Python 정규 표현식

캡처 그룹

  • 바로 왼쪽에 있는 문자

    • r"apple+": +는 apple이 아니라 e에 적용됩니다

 

  • 그룹 전체에 수량자를 적용합니다
re.search(r"(\d[A-Za-z])+", "My user name is 3e4r5fg")
<re.Match object; span=(16, 22), match='3e4r5f'>
Python 정규 표현식

캡처 그룹

  • 반복되는 그룹 (\d+) 캡처와 캡처 그룹 (\d)+ 반복의 차이
my_string = "My lucky numbers are 8755 and 33"
re.findall(r"(\d)+", my_string)
['5', '3']

 

re.findall(r"(\d+)", my_string)
['8755', '33']
Python 정규 표현식

연습해 봅시다!

Python 정규 표현식

Preparing Video For Download...