이 포스팅은 Regular Expression 시리즈 12 편 중 4 번째 글 입니다.
목차
개요
앞의 글에서 우리는 컴파일 된 pattern 객체의 메서드를 공부했다. 이 메서드에는 match, search, findall, finditer가 있었다. 해당 메서드들은 검색이 된 경우 match 객체를 리턴했다.
하지만 우리가 원하는 결과는 이 match 객체 자체가 아니다. 우리는 다음과 같은 궁금증을 가지고 검색을 진행했을 것이다.
- 어떤 문자열이 매치되었는가?
- 매치된 문자열의 인덱스는 어디서부터 어디까지인가?
이러한 것들을 해결하기 위한 메서드를 소개한다.
method | 목적 |
---|---|
group() | 매치된 문자열을 돌려준다. |
start() | 매치된 문자열의 시작 위치를 돌려준다. |
end() | 매치된 문자열의 끝 위치를 돌려준다. |
span() | 매치된 문자열의 (시작, 끝)에 해당하는 튜플을 돌려준다. |
import re
p = re.compile('ab*')
m = p.match("python")
group()
매치된 문자열을 돌려준다.
>>> m.group()
'python'
start()
매치된 문자열의 시작 위치를 돌려준다.
>>> m.start()
0
end()
매치된 문자열의 끝 위치를 돌려준다.
>>> m.end()
6
span()
매치된 문자열의 (시작, 끝)에 해당하는 튜플을 돌려준다.
>>> m.span()
(0, 6)
위 경우는 match를 사용했기 때문에 시작 위치는 항상 0일 것이다. 염두하자.