본문으로 바로가기

정규표현식(Regular Expressions)

category Python/Python3 2019. 12. 5. 19:05

re 모듈

import re

p = re.compile('정규표현식')

# 정규표현식 컴파일하고, 컴파일된 패턴 객체를 이용하여 객체가 가지고 있는 메서드를 통해 작업수행

 

ex) p = re.compile('ab*')

 

컴파일된 패턴 객체를 사용

p = re.compile('[a-z]+')

method 설명
match

문자열의 처음부터 정규식과 매치되는지 조사
p.match('aaaaa')
<_sre.SRE_Match object; span=(0, 5), match='aaaaa'>

p.match('bbbbbbbbb')
<_sre.SRE_Match object; span=(0, 9), match='bbbbbbbbb'>

p.match('1aaaa')
None

p.match('aaa1aaa')
<_sre.SRE_Match object; span=(0, 3), match='aaa'>

search

문자열 전체에서 검색하여 처음으로 매치되는 문자열 조사
p.search('aaaaa')
<_sre.SRE_Match object; span=(0, 5), match='aaaaa'>

p.search('11aaaa')
<_sre.SRE_Match object; span=(2, 6), match='aaaa'>

p.search('aaa11aaa')
<_sre.SRE_Match object; span=(0, 3), match='aaa'>

p.search('1aaa11aaa1')
<_sre.SRE_Match object; span=(1, 4), match='aaa'>

findall

모든 매치를 찾아 리스트로 리턴

p.findall('aaa')
['aaa']

p.findall('11aaa')
['aaa']

p.findall('1a1a1a1a1a')
['a', 'a', 'a', 'a', 'a']

p.findall('1aa1aaa1a1aa1aaa')
['aa', 'aaa', 'a', 'aa', 'aaa']

finditer

모든 매치를 찾아 반복가능 객체로 리턴
p.finditer('a1bb1ccc')

f_iter = p.finditer('a1bb1ccc')
for i in f_iter:
    print(i)

패턴 설명
\d 숫자와 매치, [0-9]와 동일한 표현식
\D 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식
\s whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식
맨 앞의 빈 칸은 공백문자(space) 의미
\S whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식
\w 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식
\W 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식

'Python > Python3' 카테고리의 다른 글

pip vs pip3  (0) 2020.01.12
pip install mysql-python install error  (0) 2019.12.28
파이썬이 느리지만 대중적인 이유  (0) 2019.12.01
win32com eventhandler 이름 규칙  (0) 2019.12.01
유용한 파이썬 라이브러리  (0) 2019.12.01