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()
메서드의 type
print(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