생활코딩 regex 정규표현식의 패턴들 15~17) 수량자 2 > 정규식

정규표현식

정규표현식(regex) 강좌 공유

생활코딩 regex | 정규표현식의 패턴들 15~17) 수량자 2

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩 regex님의 정규식강의 청각장애인을 위한 자막
15616033701796.jpg

 



이번 시간에는 15페이지에 있는
수량자에 대해서 알아보도록 하겠습니다.
지금까지 우리가 살펴보았던 수량자는 상당히
좀 거친 수량자라고 할 수가 있습니다.

 즉 몇개를 지정할지 여러분들이 정확하게
이 지정할 수 없다라는 점에서 그렇다는 거죠.
근데 실제로는 개들을 아주 많이 있습니다.
이번에 살펴볼 것은 여러분이 원하는 수량을 정확하게 지정할 수 있는
방법에 대해서 살펴 볼 건데요.
그 때 사용하는 기어는에 중괄호를 씁니다.
그리고 그 안에 어떤 값이 오는데 그 값이 수량을 의미하게 될 겁니다.
이게 보시죠.
여기에 있는 요점은 na캐릭터즈 어떤 문자가 상관 없다는 뜻이고
그 뒤에 나오는 중괄호오라고 하는 것은
요게 바로 수량자입니다. 그래서 어떠한 문자 네 다섯 글자여야
5글자다라는 뜻입니다.
그래서 1 2 3 4 5 요렇게 해서 애가 선택이 된거죠.
작은데요 끝에 있는 요게 선택이 안된 이유는 올매치했을 때
그것은 5개씩 끊었을 때 요렇게 끊길 겁니다. 

아마 그래서 나머지 남는 것 하나가 선택이 되지
않았다라는 뜻이죠.
els가 대괄로 사이에 있는 이것은 이나 에리나 s중의 하나에 한
글자를 의미하는 거고 그것이 1이상 그리고 3이하로 등장했을 때 

매칭이 된다라는 뜻입니다.
여기 코드를 보면 여기에 있는 이는
이 중에 하나죠 그리고 
1이상 3개이하 이기 때문에 이것은 선택이 된거구요.
여기는 l같은 경우는 역시 마찬가지로 3개이하 이기 때문에
선택이 됐죠.
그다음 ass같은 경우는 역시 마찬가지로 3개이하 이기 때문에 선택이
된 겁니다. 그리고 만약에 똑같은건데 요앞에 부분은 굳이
설명드릴 필요가 없을 거고요.
바로 앞에 숫자를 쓰고 콤마만 찍고 요렇게 하면 요건 문법적으로
문제가 있는 것이 아니고 이 뒤에 있는 수량을 열어 놓은 겁니다. 다시
말해서 3이상이라는 뜻이에요.
여기 있는걸 보면
첫 번째 부분이 선택이 되지 않은 이유는 애가 대문자이 때문에
그렇죠.
그 다음에 얘는 이 조건을 충족하기 때문에 선택이 됐구요.
이같은 경우는 첫 번째 문자가 대문자로 아니지만 얘는
문자가 2개인데 얘는 3이상을 요구하기 때문에 얘도 해당이 안되는 거죠.
그 다음에 나머지 것들은 여러분들이 직접 하나씩 따져 보시면 되겠죠.
그 다음에 살펴볼 것은 우리가 지금 이 수량자 처음 했을때
살펴보았던 것들
물음표 더하기 곱하기라고 하니 것을 우리가 중괄호를 사용하는 수량자로
 수량자로 똑같이 표현할 수 있다라는 것이 이번 수업의 이 목적입니다.
그걸 설명드리는 것이 자 여기 보시면 이렇게 별표가 있죠. 

그런 경우에는 보시는 것처럼 이렇게 콤마를 해주게
되면 0이상이기 때문에 
요조건의 해당 되게 되는 것이죠. 그 다음에 나오는 +같은 경우는
+의미는 뭘까요? 다시 복습 차원에서 한번 생각해보세요
+는 1보다 많아야 된다라는 뜻이죠. 그래서 앞에 일이오 그 뒤에
아무것도 오지 않는겁니다.
자 그럼 물음표는 뭐였죠?
물음표는 0아니면 1 0이나 1 2중에 하나죠.
그렇기 때문에 0 콤마1이 오게 되면, 두가지는 서로 같은 의미가
된다라는 그런 뜻이 되는 거죠. 

17페이지로 가겠습니다.

17페이지은 조금 어려울 수 있는 얘기긴 한데 그래봤자 어렵지 않습니다
차근차근보면 이해할 수 있어요.
우선 r점 별표 같습니다. 2점 의미는 애니캐릭터 어떤 캐릭터건 상관없이 어떤
문자가 상관없이 하나란 뜻이고
뒤에 별이 왔기 때문에 r뒤에 어떤 문제가 없을 수도 있고 또는 있을
수도 있다라는 뜻이 되는 거죠. 그래서 이 1st매치했을 때 r뒤에 

id에 문자가 있는데 이 문자 전체를 선택을 하게 되는 거죠. 

 바로 애때문에 그렇죠. 그래서 id air 뒤에는 어떤 문자가 오는데 그 수량은
없을 수도 있고 모든 아무리 많아도 상관없다는 뜻이니까 이렇게 되는
거죠.
1st 매치랑 올매치가 같은 결과를 갖게 됩니다
자 그런데 보시는 것처럼 
i뒤에 2.2왔고 별이 왔고 물음표 같습니다.
그런데 우리가 지금까지 살펴본 물음표라고 하는 수량자는
예별에 요별이 위치하고 있는 이곳에 와야 되는데 이상하게 * 뒤에
왔습니다.
이런 경우에 이 물음표라고 하는 이 수량자의 의미가 달라집니다.
다시 말해서 수량자뒤에 물음표가 오게 되면 그 수량자의

 의미가 맥락상 달라지게 된다는 얘기예요.
원래 수량자 의미는 0아니면 1없거나 1인 경우가 우리가
물음표라는 수랑자를 쓰는 건데
자의 별표라고 하는 수량자 뒤에 물음표를 쓰게 되면 요 두개는 어떤
의미를 갖게되냐면
이 별표가 갖고 있는
수량자의 의미가 뭐였죠?
0 이거나 1여러개 이 모든 걸 다 포함하는 거죠.
그 중에서 가장 적은 수량자에 해당되는 영을
영 2 0의 의미를 갖게 됩니다. 그럼 표가 뒤에 붙게 되면, 그 얘기는
뭐냐면 i뒤에 점하고서 별표 물음표를 하게 되면 이 별표의 의미가
이 물음표로 인해서 바뀌어서
애가 0에서 여러개까지의 의미를 갖고 있었던 기존의 의미가 바뀌고
이별표 의미는 영을 수량자영이 되는 겁니다.
그렇기 때문에 r뒤에 있는 요n이 애니캐릭터라고 하는 이점이라고

 하는 기온은 사용되지 않게 됩니다.
그 결과를 한번 살펴보면 보시는 것처럼 이r이라고 하는 텍스트
뒤에 여기 2.2있는데도 불구하고 좀 지저분해서
알이 있고 점이 있는데 그 점
해당 점이라고 하면 하나의 글자 1인건데 하나의 글자가 선택이 안 되고
r만 선택이 된 것을 볼 수가 있습니다.
조금 아리송 하실 거에요. 또 한번 다른걸 한번 살펴보죠
예를 들어서 r.+라고 하면 i뒤에 어떤 문자가 오는데 그
문자의 수량은 반드시 1이상이어야 된다라는 뜻이죠.
여기있는 +로 인해서 그런데 보시는 것처럼
 이렇게 물음표가 나왔어요.
 물음표 즉 +라는 수량자 뒤에 물음표가 나왔을 때
+의 의미는 뭐예요 1에서 여러개인 경우를 의미 하잖아요.
그중에서 요기있는 물음표라는
이 특수한 수량자가 붙게 되면 여기에 있는
다이의 의미는 없어지고 일의 의미를 갖게 됩니다.
즉 이렇게 되면 r,+?라고 하는 것은 아이디에 문자 하나만
오는 것이 문자 하나만을 선택하는 패턴이 되는 겁니다. 그 결과가
이렇게 되는 것이죠.
그 다음에
r.?라고 되어 있는데 여기 있는 물음표는 0에서 1이죠
즉 r뒤에 있는 어떠한 문자가 없을 수도 있고 하나일 수도 있다라는
돼서 이렇게 두개씩 선택이 된거죠.
그런데 이걸 보면 조금 더 확실해 지죠.
물음표 뒤에 물음표가 붙었습니다.
즉 이 물음표가 갖고 있는 원래의 의미인 0에서 1이라는 의미에서
뒤에 물음표가 요렇게 붙게 되면 앞쪽에 있는
 더 작은 선택자가 더 작은 수량이 선택되면서 여기 있는 .은 연계를

 의미하고, 얘기는 r만 선택해서 요렇게 된다는 것이죠.

그러면 도대체 이 물음표라고 하는 요것
수량자 뒤에 따라오는 물음표는 도대체 언제 쓰냐라는 궁금증이
생기실 겠죠. 
여기 제가 보여드린 요것은 이 정규표현식을 여러분들이 쉽게 작성할
수 있도록 도와주는 도구입니다. 이 주소로 들어가시면
여러분들도 직접 한번 체험해 보실 수가 있고요.
여기에 정규 표현식에 패턴이 들어가구요. 여기에는 여러분이 작업하려고
하는 그 소스 텍스트가 들어 갑니다.
만약에 여러분이 여기 div라고 하는 이태그
did iv라고 하는 이태그를
선택하고 싶다라고 한다면
여기 있는 이 태그 하나만을
이만큼을 선택하고 또 이만큼을 여러분들이 별도로 선택하고 싶다고
했을 때 만약에
여기에 있는 요 .+라고 하는 이 기호를 쓰게 되면 div 태그와
닫히는 div 태그 사이에 있는 어떠한 문자를 선택을 하는 건데
문자는 .+이기 때문에 어떠한 텍스트가
최소 하나 이상인 그러한 태그를 선택하는 거죠.
그렇게 해서 선택을 했을 때 결과는 어떻게 되나요?
여기 파란색으로 표시된 부분이 선택한 부분입니다.
보시는 것처럼 이만큼 이 하나로 끊겨서 선택되는 것이 아니고
요렇게가 통으로 선택이 된 겁니다. 왜 그러냐면
여기에 있는 요div라고 하는 요 뒤에 있는 요놈이
여기 중간에 있는 놈을 지목한 것이 아니라 이 문자 이 텍스트 젤 텍스트
전체에서 가장 마지막에 등장하는 이 div 를 선택했기 때문에
앞에 있는 div 와 제일 뒤에 있는 div가 선택이 되면서 이만큼이
타겟팅이 된거죠. 

이러한 방식을 뭐라고 하냐면 탐욕적인이라고 합니다.
탐욕적인 수량자
한국어로 하니까 조금 이상하긴 한데 영어로 하면 greedy 콘티
파이어라고 합니다.
그릴이 그리디는 한국어로 탐욕적인이란 뜻이죠.
그러면 문제를 해결하기 위한 방법은 여러분이 유도하기 뒤에다가
물음표를 쓰는 겁니다. 그럼 어떻게 됐나요?
보시는 것처럼 자세히 보시면 여기에 이렇게 저리생겼죠.
요만큼이 선택이 됐다는 뜻입니다. 지금 글로벌을 체크 했기 때문에 이렇게
된거고 만약에 얘를 이렇게 하게되면 div부터 첫 번째 나오는 닫히는
요div 까지가 선택이 된거죠.
 근데 만약에 여기에 있는 요 물음표를 제거하면
 보시는 것처럼 열리는 div와 닿지는 div가장 뒤에 있는
div 선택에 된것 탈퇴 됩니다.
그렇기 때문에 얘를 탐역적이라는 이유 이름을 쓴 이유를 아시겠어요.
여기서부터 제일 끝에 있는 선택자 전체를 먹어 버리기 때문에 타
목적이라고 하는거구요.
여기에 있는 요 물음표를 여기다가 물음표를 넣게 되면,이 div 첫
번째 등장하는 닫히는 div가 선택이 된 거죠. 그래서 이런 방식의
뭐라고 하냐면
게으른 선택자라고 합니다.
영어로는
그리 콘티 파이어라고 하겠죠.

댓글 0개

등록된 댓글이 없습니다.

Total 9건 1 페이지

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu