린아저씨의 잡학사전

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

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




### Page 13 ###



Page 13에서는 + 수량자에 대한 다른 패턴 들이 결합하는 예제 입니다.


+ 수량자는 앞에 있는 문자가 한개 ~ 여러개 있는 것을 검출해 줍니다.


따라서 case 1을 보면 \*+ 를 확인할 수 있는데 여기서 \는 이스케이프 문자로


특수한 기능을 하는 *를 단순한 문자로서 검색해보기 위해 사용된 것입니다.


따라서 \*+는 *가 한개 이상인 패턴들을 검출해 줍니다. 



case 2는 -@+- 로 양 끝에 반드시 -가 있고, 두개의 - 사이에 @가 하나 이상인 패턴을 검출해 주는 것입니다.



case 3에서 [ ]안의 ^는 not의 의미를 갖게 됩니다. 따라서 [^ ]+는 공백이 아닌 하나 이상의 문자열을 검출하게 되는 것입니다.


따라서 All matches를 보면 공백은 검출이 안되 있음을 확인 할 수 있습니다.




### Page 13 ###



Page 14는 수량자 ?에 대한 것으로 ?는 ?앞에 문자가 없거나 하나만 있어야하는 것을 의미합니다.


case 1을 보게 되면 -X?XX?X 라는 정규 표현식이 있는데


이는 -X?XX?X 에서 -는 반드시 있어야하고, -X?XX?X 에서 이 X는 없거나 하나만 있어야 하며,


-X?XX?X 에서 이 X는 반드시 있어야 하며, -X?XX?X 에서 이 X 역시 없거나 하나 있어야 하고,


마지막으로 -X?XX?X 에서 이 X는 반드시 있어야 한다는 것입니다.


따라서 First match에서 선택된 것은 ? 앞의 X 두개가 없는 경우입니다.



case 2는 -@?@?@?- 로 양 끝의 -는 반드시 있어야 하지만 ? 앞의 @ 세개는 없거나 한개만 있어야 한다는 것입니다.


따라서 First match 처럼 @가 하나도 없는 --이 선택되거나 All matches 에서 처럼 --는 반드시 있고 


@가 하나 있거나 두개 있거나 세개 있는 경우에만 검출 됩니다.


마지막으로 case 3은 [^@]@?@ 로 [^@]는 @가 아닌 문자만을 뜻하기 때문에 @가 아닌 문자가 반드시 있어야 하고


?앞의 @는 하나만 있거나 없어도 되며, 맨뒤의 @는 반드시 있어야 합니다.


따라서 First match 처럼 @가 아닌 -와 맨뒤의 @가 있는 -@를 검출 하였고


All matches에서는 @가 아닌 -와 ? 앞의 한개의 @ 그리고 맨뒤의 반드시 있어야하는 @가 검출되어


-@@ 의 문자열이 검출된 것을 확인 할 수 있습니다.




공유하기

facebook twitter kakaoTalk kakaostory naver band