정규 표현 식 (. *?) (. +?) 타성 일치

2358 단어
블 로 그 를 많이 보고 드디어 알 게 되 었 습 니 다. 지금 표 로 정리 하 겠 습 니 다.
기호.
역할.
.
줄 바 꿈 자 를 제외 한 임의의 문자 와 일치 합 니 다.
*
앞의 문자 와 0 번 또는 여러 번 일치 합 니 다.
+
앞의 문자 와 한 번 또는 여러 번 일치 합 니 다.
?
앞의 하위 표현 식 과 0 번 또는 한 번 일치 하거나 탐욕 이 아 닌 한정 자 를 가 리 킵 니 다.
.*
줄 바 꾸 기 "를 제외 한 임의의 문자 와 0 번 또는 여러 번 일치 합 니 다.
.+
줄 바 꾸 기 "를 제외 한 임의의 문자 와 1 회 또는 여러 번 일치 합 니 다.
.*?
줄 바 꿈 문자 '' 를 제외 한 문 자 를 0 번 또는 여러 번 일치 하지만 가능 한 한 적 게 반복 합 니 다.
.+?
줄 바 꿈 문자 '' 를 제외 한 문 자 를 0 번 또는 여러 번 일치 하지만 가능 한 한 적 게 반복 합 니 다.
여기?탐욕 이 아 닌 한정 부 를 가리 키 는 역할 인 데 가능 한 한 반복 을 적 게 하 는 것 이 무엇 입 니까?간단하게 말 하면 가장 짧 은 요구 에 부합 되 는 표현 식 입 니 다. 다음 예 를 들 어 보 겠 습 니 다.
re.match(r'a.*b', 'aababa') # 1
re.match(r'a.*?b', 'aababa') # 2

1 식 은 비 탐욕 한정 부적 이 없고 최 장 표현 식 과 일치 합 니 다. 결 과 는 aabab 2 식 에 비 탐욕 한정 부적 이 있 습 니 다. 가능 한 한 중복 을 적 게 하고 결 과 는 aab 와 ab 입 니 다.
re.match(r'a.+?b', 'aababa') # 3

동 리마찬가지 로 0 번 일치 하 는 상황 은 포함 되 지 않 기 때문에 3 식 결 과 는 aab 입 니 다. 예 를 들 어:
re.match(r'hello.*?world', 'xxxhelloworldxxhelloxxworld' # 4

4 식 결 과 는 분명 하 다.

좋은 웹페이지 즐겨찾기