정규표현식의 패턴들 11~14) 수량자2(Quntifiers)
- 수량자 갯수제한
{}
- 탐욕적인 수량자와 게으른 수량자 차이
pattern : {글자수}
- 앞에 있는 패턴에 일치하는 글자수를 지정(공백포함)pattern :
{글자수1, 글자수2}
- 앞에 있는 패턴에 일치하는 글자수가 첫번째 글자수 이상 두번째 글자수 이하pattern :
{글자수1, }
- 에 있는 패턴에 일치하는 글자수가 첫번째 글자수 이상만 되면 됨
- 문자{0,} === 문자*
- 문자{1,} === 문자+source : One ring to bring them all and in the darkness bind them
.{5}
- 어떤 글자던 5글자까지 => all matched의 경우 5글씩 끊기 때문에 %5 나머지 갯수는 매치안됨
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
[els]{1,3}
- e,l,s 중에 1글자 이상 3글자 이하
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
[a-z]{3,}
- a부터 z까지 글자가 3개이상 : 공백으로 구분하기 때문에 단어 갯수가 2개일 경우 매치안됨
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
source : AA ABA ABBA ABBBA
AB*A
AB{0,}A
- A뒤에 B가 0개~여러개 뒤에 A
- first match : AA ABA ABBA ABBBA
- all matched : AA ABA ABBA ABBBA
AB+A
AB{1,}A
- A뒤에 B가 1개이상 뒤에 A
- first match : AA ABA ABBA ABBBA
- all matched : AA ABA ABBA ABBBA
AB?A
AB{0,1}A
- A뒤에 B가 0개 혹은 1개 뒤에 A
- first match : AA ABA ABBA ABBBA
- all matched : AA ABA ABBA ABBBA
pattern : 수량자?
* ? +
같은 수량자와 ?가 결합한 경우 의미가 달라진다- 수량자뒤에 ?가 오면 앞의 수량자의 최소갯수만 의미함
- ex) 문자*?이라면 *의 최소갯수가 0이니깐 문자 0개를 의미함
- 탐욕적인 수량자(Greedy Quntifiers)가 아닌 게으른 수량자(Lazy Quntifiers) 사용하고 싶을때 쓴다
source : One ring to bring them all and in the darkness bind them
r.*
- r과 그 뒤에 오는 모든 문자
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
r.*?
- r만 골라라 => *의 최소수량이 0개 이므로 .은 무시됨
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
r.+
- r과 그 뒤에 문자 한개이상이 옴
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
r.+?
- r과 그 뒤에 문자 한개가 옴 => +의 최소수량이 1개이므로
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
r.??
- r만 골라라 => ?의 최소수량이 0개 이므로 .은 무시됨
- first match : One ring to bring them all and in the darkness bind them
- all matched : One ring to bring them all and in the darkness bind them
수량자?는 언제쓰는가?
flag g : 이렇게 식 짜면 통채로 다 선택됨
flag g : ?가 추가되면 각 식이 끊어져서 선택됨
flag m : m 이여도 중간 끊어지는 부분을 구분하지 않기에 통채로 다 선택됨
flag m : 각 식이 끊어져서 첫번째만 선택이 됨
'RegEXR > Common' 카테고리의 다른 글
정규표현식 ?= (0) | 2019.12.16 |
---|---|
정규표현식 \w \W \d \D \b \B \A \Z (0) | 2019.12.13 |
정규표현식 * + ? (0) | 2019.12.11 |
정규표현식 [] [-] [^] (|) (0) | 2019.12.10 |
정규표현식 $ ^ / . (0) | 2019.12.10 |