import re
정규표현식 = r'([a-zA-Z]+) : (Wd+)'
문자열 = 'name : leehojun. age : 10. height : 180, email : paul-lab@naver.com'
결과 = re.search(정규표현식, 문자열)
pritn(결과)
'''
실행결과
<re.Match object: span=(17, 25), match='age : 10'>
'''
r 이라고 입력하면 파이썬이 정규표현식이라고 인식한다
import.re에서의 re의 약자
그룹1
[a-zA-Z] 문자열 ++ 문자열에 대해서 문자가 1개이상 있는 값을 매칭search() 메서드
colab에서 코드실행하는 코드
command+Enter
search() 메서드의 typeprint(type(결과))
# <class 're.Match'>
결과의 type 을 알아보면 위와같이 나오는데 이는
정규표현식에 매칭되는 값으로 가져왔다는 것을 알 수 있다
match()메서드문자열 처음이 정규식 매칭 여부 판단
있을 경우 object 주소 반환, 없을 경우 None반환
object
객체(object) : 실제 세계에 존재하는 실체(instance)
클래스(class) : 객체들의 공통점을 간추려서 개념적으로 나타낸 것
search() 메서드를 딕셔너리로 변환print(dir(결과))
# ['_class_', '_copy_', '_deepcopy_', '_delattr_', '_dir_', '_doc_', '_eq_', ...>
리스트로 결과값이 나오는데 여기서 사용가능한 메서드 들을 결과값으로 가져왔다
search() 메서드의 주소값 찾기print(결과.start()) # 17
print(결과.end()) # 25
문자열에서 정규표현식으로 매칭된 값의 object 주소의
각각 시작값과 끝값을 확인했다
print(문자열[결과.start(): 결과.end()])
'''
실행결과
'age : 10'
코드설명
1.문자열[:] : 문자열을 인덱싱했는데
2. 결과.start() object 주소의 시작값
3. 결과.end() : object 주소의 끝값
→ 결과 : 문자열의 데이터 중에서 ([a-zA-Z]+) : (Wd+) 에 매칭되는 값 출력
group() 그룹group()print(결과.group())
코드실행결과 'age : 10'
group(0)결과.group(0)
코드실행결과'age : 10'
group()vsgroup(0)차이점
group(1)결과.group(1)
코드실행결과 'age'
group(2)결과.group(2)
코드실행결과'10'
결과.group(3) : 그룹3은 없기때문에 에러로 나온다
IndexError : no such group