Python에서는 다섯 함수부터 익히면 돼
내장 re 모듈의 검색 함수는 어디서 시작하고 몇 개를 돌려주는지에 따라 나뉘어.
re.search(pattern, text)는 문자열 어디서든 첫 매칭을 찾아 일치 객체를 돌려줘.re.match(pattern, text)는 문자열 시작 위치에서만 첫 매칭을 시도해.re.fullmatch(pattern, text)는 문자열 전체가 패턴과 맞을 때만 성공해.re.findall(pattern, text)은 서로 겹치지 않는 결과를 목록으로 모아 줘.re.finditer(pattern, text)는 각 일치 객체를 차례로 내놓는 반복자를 돌려줘.
앞의 세 함수는 실패하면 None을 반환해. 여러 결과의 위치나 그룹까지 살펴봐야 한다면 findall보다 finditer가 다루기 편해.
일치 객체에서 값과 위치를 꺼내
m.group()과m.group(0)은 전체 매칭을 돌려주고m.group(N)과m.group('name')은 번호나 이름으로 캡처 값을 꺼내고m.groups()와m.groupdict()은 여러 캡처를 튜플이나 딕셔너리로 모아 주고m.start(),m.end(),m.span()은 매칭한 범위의 위치를 알려 줘.
포함, 시작, 전체를 구분해
re.match(r'world', 'hello world')는 world가 문자열 중간에 있어서 실패해. 어디에 포함됐는지 찾으려면 search, 시작에서만 보려면 match, 입력 전체를 검증하려면 fullmatch를 골라.