정규표현식 - 수량자-2
Page 15 - { } 원하는 값의 수량을 정확하게 지정함
Case 1
.{5} 5개의 문자를 선택.
All matches의 경우 마지막이 5개가 되지않으므로 남는것을 반환
Case 2
[els] e, l, s가 1개 이상, 3개 미만인 값을 선택
Case 3
[a-z]{3,} a에서 z까지 3개 이상인 문자를 선택
Page 16 - { }를 이용하여 *,+,? 와 동일한 기능을 사용하는 방법
Case 1 - Case 2, Case 3 - Case 4, Case 5 - Case 6이 동일한 결과이다.
Page 17 - ?가 수량자(*, +, ?)와 만났을때 기능이 바뀐다
Case 1 - Case 2
* 는 0개에서 여러개를 지정하는 수량자이다.
*와 ?가 결합하면 *는 0개를 지정하는 수량자로 기능이 바뀐다.
Case 3 - Case 4
+ 는 1개에서 여러개를 지정하는 수량자이다.
+와 ?가 결합하면 +는 1개를 지정하는 수량자로 기능이 바뀐다.
Case 5 - Case 6
? 는 1개에서 여러개를 지정하는 수량자이다.
?와 ?가 결합하면 ?는 0개를 지정하는 수량자로 기능이 바뀐다.
?로 수량자의 기능을 변경하는 이유
: ?로 수량자의 기능을 변경하지 않는 경우
전체가 선택되어 greedy quantifier로 동작하므로 원하는 값을 얻을수 없다.
그러나 ? 로 기능을 변경할 경우 분할이 되므로 lazy quantifier 로 동작한다.
따라서 원하는 값을 얻기위해 수량자의 기능을 변경한다.
Greedy quantifier
lazy quantifier
'개발' 카테고리의 다른 글
[정규 표현식] Assertion (0) | 2017.04.18 |
---|---|
[정규 표현식] Character Class (0) | 2017.04.18 |
[정규 표현식] 수량자 - 1 (0) | 2017.04.18 |
[정규 표현식] SUBPATTERN (0) | 2017.04.18 |
[정규 표현식] 특정 문자 (0) | 2017.04.18 |
댓글