반응형
[regex] Possessive quantifier 에 대해 알아보자. |
https://chortle.ccsu.edu/FiniteAutomata/Section09/sect09_21.html
-
regex 의 quantifier 는 greedy(by default), reluctant(or lazy), possessive 중 하나이다.
possessive 는 다음과 같이 일한다.
1. first unmatched char 부터 match 를 시작한다.
2. 왼쪽부터 오른쪽으로 매칭 시작한다.
3. 가능한 많이 matching 시킨다.
4. char 가 matching 되면 quantifier 를 유지하고, 나머지 regex 의 matching 을 무시한다. (back-tracking 하지 않는다.)
-
quantifier 에 + 사인을 주면 possessive 가 된다.
X++ 는 X 를 한개이상 match 시키고, match 된 것을 절대 포기하지 않는다.
예를 들어 X++[A-Z]+ 가 있을 때,
string XXXXZ 에 대해서는 XXXX 가 X++ 에 매칭되고, [A-Z]+ 에는 Z 가 매칭된다.
string XXXX 에 대해서는 X++ 가 XXXX 를 다 가져갔기 때문에 이 녀석은 매칭되지 않는다. (back-tracking 하지 않기 때문이다. greedy 였다면 X+ 에 XXX 가 매칭되고, [A-Z]+ 에 마지막 X 가 매칭된다.
반응형
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
[git] fetch 하기 & pull 하기 (0) | 2020.03.04 |
---|---|
[git] 수정 사항 되돌리기 ( stage to unstage, reset modifed ) (0) | 2020.03.03 |
[regex] 정규식 성능에 대해 알아보자 (0) | 2020.02.28 |
[도서 정리] 13. Git 명령어 - ProGit (0) | 2020.01.18 |
[도서 정리] 12. 앱에 git 넣기 - ProGit (0) | 2020.01.17 |
댓글