[플레이데이터 빅데이터 부트캠프]Python 정규식(Regular Expression)

정규식(Regular Expression)이란?

문자열의 "특정 조건 또는 패턴"을 치환하는 과정을 쉽게 처리할 수 있는 방법을 말한다.

정규식은 모든 컴퓨터 언어에서 공통으로 쓰인다.

정규식(Regular Expression)은 크게 두 가지 방법으로 쓰인다.

p = re.complie('패턴')
p.method(데이터)

 

re.match() : 문자열의 첫 시작부터 정규식과 매치되는 문자열을 반환해 준다.

import re
data1 = 'dbC dEfG Encore core'

p = re.compile('core')
m = p.match(data1)
print(m)
None

처음부터 일치하는 문자열이 없는 경우 'None'을 반환한다.

p = re.compile('[a-zA-Z]+') #정규 표현식에서 +는 반복의 의미이다.
m = p.match(data1)
print(m)
<re.Match object; span=(0, 3), match='dbC'>

정규식 패턴을 '알파벳 모두'로 바꾸니, 일치하는 문자열을 반환해 주었다.

 

re.match() 객체의 메서드

data1 = 'dbC dEfG Encore core'
p = re.compile('[a-zA-Z]+')
print(p.match(data1).group()) #해당되는 문자열을 반환해준다.
print(p.match(data1).start()) #문자열의 시작점을 반환해준다.
print(p.match(data1).end()) #문자열의 끝점을 반환해준다.
print(p.match(data1).span()) #문자열의 시작점과 끝점을 반환해준다.
dbC
0
3
(0, 3)

 

re.search() : 문자열 전체를 검색하여 정규식과 매치되는지 조사한다.

data1 = 'dbC dEfG Encore core'
p = re.compile('core')
p.search(data1)
<re.Match object; span=(11, 15), match='core'>

 

re.findall() : 일치하는 문장을 찾아서 리스트 형태로 반환해준다.

data1 = 'dbC dEfG Encore core'
p.findall(data1)
['core', 'core']

 

re.finditer() : 정규식과 매치되는 모든 문자열(substring)을 반복 가능한 객체로 돌려준다.

data1 = 'dbC dEfG Encore core'
m = p.finditer(data1)
for r in m:
    print(r)
<re.Match object; span=(11, 15), match='core'>
<re.Match object; span=(16, 20), match='core'>