import re
p = re.compile('ab*')
re 모듈을 사용하고 정규표현식을 compile하여 사용 한다.
파이썬 공식 홈페이지에서 중요하다고 언급한 네 가지 메서드는 아래와 같다.
match() : 문자열의 시작부터 정규표현식과 일치하는지 판단한다.
search(): 처음부터 훑으면서 정규표현식과 일치하는 위치를 찾는다.
findall(): 정규표현식과 일치하는 모든 문자열을 찾아 리스트로 반환한다.
finditer(): 정규표현식과 일치하는 모든 문자열을 찾아 iterator로 반환한다.
앞서 선언한 p와 함께 p.match('abc')
, p.search('search abcd')
, p.findall('abcc bcaaa acba abcd')
, p.finditer('abcc bcaaa acba abcd')
처럼 사용한다.
match()는 해당 문자열과 일치하지 않는 경우 None을 반환하고 일치하는 경우 Object를 반환한다. 이 Object의 속성을 가져올 수 있는 메소드는 다음과 같다.
group(): 일치하는 문자열을 반환한다.
start(): 일치하는 문자열의 시작 위치를 반환한다.
end(): 일치하는 문자열의 끝 위치를 반환한다.
span(): 일치하는 문자열의 시작과 끝 위치를 튜플 형태로 반환한다.
search()는 일치하는 문자열이 없는 경우 match()와 마찬가지로 None을 반환하고 있는 경우 Object를 반환한다. match()와 다른 점은 정규표현식이 문자 처음부터 일치 해야하지만 search()는 입력받은 문자열의 일부분만 정규표현식과 일치하면 된다는 점이다.
앞의 메서드들과 달리 findall()은 일치하는 문자열들을 배열로 리턴한다.
반복 가능한 객체(iterator object)를 리턴한다. 반복 가능한 객체는 각각 match()메서드가 리턴하는 Object객체와 같다.