python 정규표현식 search(), group()
코드1
import re
정규표현식 = r'([a-zA-Z]+) : (Wd+)'
문자열 = 'name : leehojun. age : 10. height : 180, email : [email protected]'
결과 = re.search(정규표현식, 문자열)
pritn(결과)
'''
실행결과
<re.Match object: span=(17, 25), match='age : 10'>
'''
코드해석
-
r
이라고 입력하면 파이썬이 정규표현식이라고 인식한다
import.re
에서의re
의 약자 -
그룹1
[a-zA-Z] 문자열
++
문자열
에 대해서 문자가 1개이상 있는 값을 매칭
-
search()
메서드- 문자열 전체에서 정규식 매칭 여부 판단한다
- 있을 경우 object 주소 반환, 없을 경우 None 반환
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)
차이점
그룹1에서 매칭 group(1)
결과.group(1)
코드실행결과 'age'
그룹2에서 매칭 group(2)
결과.group(2)
코드실행결과'10'
존재하지 않는 그룹에서 매칭시도
결과.group(3)
: 그룹3은 없기때문에 에러로 나온다
IndexError : no such group
Author And Source
이 문제에 관하여(python 정규표현식 search(), group()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@beanlove97/python-정규표현식-search-group저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)