본문 바로가기

파이썬으로 퀀트 프로그램 만들기 project

정규 표현식 실습

728x90

정규 표현식 실습을 해보겠습니다.

import re

#re.compile()를 통해 정규표현식을 컴파일 하여 변수에 저장한 후 사용가능
p = re.compile('[a-z]+')#알파벳 소문자가 1부터 여러개까지를 의미
m = p.match('python')

print(m)
print(m.group())

'python'전부 매치됨을 확인할 수 있습니다.

 

 

m = p.match('Use python')
print(m) #None

match함수는 시작 부분부터 일치 패턴을 찾아서 'Use python'와 매치가 안됩니다

결국 None이 출력됩니다.

 

 

p = re.compile('[가-힣]+')
m = p.match('파이썬')
print(m)

[가-힣]은 모든 한글을 뜻합니다.

'파이썬'과 매치됩니다.

 

 

p = re.compile('[a-z]+')
m = p.search('Use python')
print(m)

match함수와 달리 search는 첫번째 일치하는 패턴을 찾습니다.

'se'와 매치됩니다.

 

 

p = re.compile('[a-zA-Z]+')
m = p.findall('Life is too short, You need Python.')
print(m)

findall은 매치되는 모든 것을 찾아서 리스트로 반환해줍니다.

['Life', 'is', 'too', 'short', 'You', 'need', 'Python']이 출력됩니다.

 

 

p = re.compile('[a-zA-Z]+')
m = p.finditer('Life is too short, You need Python.')

for i in m:
    print(i)

finditer는 findall과 비슷합니다. 다른 점은 반복 가능한 객체(iterator object)를 반환해 줍니다.

<re.Match object; span=(0, 4), match='Life'>
<re.Match object; span=(5, 7), match='is'>
<re.Match object; span=(8, 11), match='too'>
<re.Match object; span=(12, 17), match='short'>
<re.Match object; span=(19, 22), match='You'>
<re.Match object; span=(23, 27), match='need'>
<re.Match object; span=(28, 34), match='Python'>

다음과 같이 출력합니다.