2011. 7. 24. 11:11

탐욕적 수량자 / 게으른 수량자

ReGex(레젝스)에서 Greedy Quantifier(탐욕적 수량자), Lazy Quantifier(게으른 수량자) 용어에 대해서 설명하겠습니다. 

기본적으로 별표(*)와 더하기(+)는 수량자(quantifier)를 탐욕적으로 설계하였습니다. 여기서 탐욕적이라 하면 가능한한 가장 큰 덩어리를 찾으려 한다는 뜻 입니다. 반대로 게으른 탐색은 가장 근접한 최소의 덩어리를 찾으려 한다는 뜻입니다. 

1. 탐욕적 수량자와 게으른 수량자

 탐욕적 수량자 게으른 수량자 
 *  *? 
 +  +? 
 {n,}  {n,}? 


2. Greedy Quantifier 예제

정규 표현식 검사기(http://www.forta.com/books/0672325667/)를 이용한 검색 결과입니다.
결과를 살펴보면 <B>에서 시작하는 건 맞지만 마지막 매치가 "HI</B>" 가 됩니다.



3. Lazy Quantifier 예제

아래 그림처럼 원래 의도하려고 했던되로 모든 <B> 태그와 종결자를 찾습니다.



참고: Regular Expressions in 10 minutes (손에 잡히는 정규 표현식) - 벤 포터