린아저씨의 잡학사전

※ 본 자료는 '생활코딩' 이고잉님의 정규표현식 강의를 듣고 정리한 자료 입니다. 

이고잉님의 동영상 강의 : https://opentutorials.org/course/909/5143




### Page 11 ###





Page 11은 Quantifiers에 대한 내용입니다. Quantifiers는 우리말로 수량자 입니다.


수량자는 어떠한 패턴이 얼만큼 나타나는가를 나타내는 숫자를 뜻합니다.


수량자에는 크게 세가지가 있는데 *  +  ?  이 세가지 입니다.


첫번째 수량자로 *는  *앞에 어떤 문자가 몇번 등장하는가에 대한 것인데,


0 ~ 무한대의 범위를 갖습니다.


case 1을 보면 a*b라고 되어 있는데 이 뜻은


b 앞에 a가 없거나 한개 있거나, 여러개 있거나를 뜻하게 됩니다.


따라서 b에 초점을 맞추시고 보시는게 더 편하실듯 합니다.


두번째 수량자로 + 는 역시 +앞에 어떤 문자가 몇번 등장하는가에 대한 것인데,


*와 다른점은 +는 가장 작은 범위가 0이 아닌 1이라는 것입니다.


따라서 case 2처럼 a+b는 b 앞에 a가 한개 있거나 여러개 있거나를 뜻하게 됩니다.


마지막 수량자로 ? 는 ?앞에 문자가 없거나 한개 있거나를 뜻합니다.


case 3의 경우 처럼 a?b는 b 앞에 a가 한개 있거나 아예 없거나를 검출하게 됩니다.




### Page 12 ###





page 12에서는 위의 수량자를 문자뿐만 아니라 다른 기호들과 함께 사용하는 방법에 대한 내용입니다.


앞서 살펴본 * 는 *앞에 어떤 문자가 없거나 있거나 여러개 있거나를 뜻합니다.


case 1의 경우 .* 라고 되어있는데 이는 .이 뜻하는 공백을 포함한 어떠한 문자가


없거나 있거나 여러개 있다는 것입니다. 따라서 이는 소스의 전체를 검출하게 됩니다.


여기서 . 하나만 썼을 때와 다른점은 . 하나만 썼을때 First match에서는 한 단어만을 검출하지만


.* 을 쓰게 되면 First match에서도 모든 단어를 검출하게 됩니다.



case 2 의 경우를 살펴보면 -A*- 라고 되어 있습니다.


이가 뜻하는것은 앞뒤의 - 사이에 A가 있거나 한개있거나 여러개 있는 것을 검출하는 것입니다.


따라서 -- 만 매치된것을 확인할 수 있습니다.



마지막 case 3를 보면 [-@]*라고 되어있습니다.


[ ] 대괄호는 - 나 @가 포함되어 있는 문자를 매치하는 것으로


이 대괄호가 * 앞에 있으므로 [ ] 안의 패턴이 없거나 있거나 여러개이거나 하는 패턴을 매치하게 됩니다.


따라서 위의 case 3 와 같이 매치되게 됩니다.






공유하기

facebook twitter kakaoTalk kakaostory naver band