생활코딩 regex 정규표현식의 패턴들 18~24) 경계 > 정규식

정규표현식

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

생활코딩 regex | 정규표현식의 패턴들 18~24) 경계

본문

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

 



캐릭터클래스라고 하는 것에 대해서 알아보겠습니다.
캐릭터는 문자라는 뜻이고 클래스는 어떤 그룹을 의미하는 거죠. 그래서
여러분들이 지금까지 살펴보았던 것은 이렇게 au와 이 대괄로
안에다가 데이부터 젝트 그리고 0부터 9 이런식으로
여러분이 레인지를 정하는 방식을 통해서 어떤
문자들 이렇게 지정을 했는데요. 이것보다 좀 더 간편한 방식이 있습니다.
여기 보시면 일단 소스는 요렇게 생겼구요.
그리고 정규표현식으로 여러분이
역시 /그리고 w라고 적어 주게 되면
요건 무슨 뜻이냐면 우리말로는
단어들라는 뜻이 됩니다.
단어라고 하는 것은 어떤 것이냐면 여기에 알파 뉴머리라고 되어있죠.
즉 알파벳과 숫자와 그리고 언더라인이라고 한 요세개의 기호가
합쳐져서 워드를 의미하게 됩니다.
자 그래서 이렇게만 적어 주게 되면 이렇게 여러분이 직접 적어 줄
필요없이 아주 간편하게
대문자와 숫자 이것들을 가리키는 정규표현식 패턴을 사용할 수 있게
되는 것이죠. 그 다음에 이렇게 하게되면 요수 양자가 뒤에 붙게 되면
수량자 의미는 0부터 여러개까지 있을 수도 있고 없을 수도 있다라는 뜻이기
때문에 여기 보시는 것처럼
요렇게가 선택됩니다.
 여기에 있는 예가 선택이 되지 않는 것은 공백은
워드 안에 포함이 되지 않기 때문에 그렇겠죠.
그 다음에 a에서 z까지 그리고
문자가 오고 그리고 수랑자가 붙었습니다. 얘기는 뭐냐면 a에서 z
까지의 문자가 문자가 오고 그리고 여기에는
제가 w라고 하는 범위에 해당되는 것이 오는데 여기 있는 이것은
올 수도 있고 오지 않을 수도 있다라는 뜻입니다.
그래서 c3라고 되어있는 c는 바로 여기에 해당되고요. 그리고
쓰리는 뒤에 있는 요거 3에 해당되기 때문에 얘는 선택이 된거구요.
자애가 선택되지 않은 이유는 얘는 대문자로 시작하는데 대문자는
여기에는 선택이 되지만 여기에는 소속되어 있지 않기 때문에
요거 같은 경우는 선택되지 않는 겁니다. 여기는 다른 것들은 여러분들이
직접 한번 파악을 해 보세요.
 다음에 용어는 뭐죠. 문자 5개란 뜻이기 때문에
여기에 있는 요문자가 요렇게 선택이 된 거죠.
얘들이 선택되지 않은 이유는 다섯개를 충족시키지 못했기 때문에
그렇습니다.
이거는 자요것과 정확하게 동일한 의미다라는 뜻으로 이걸 다시 언급해 준 것
같아요.
그래서 여기에 있는 유결과와 요결과가 서로 같죠.

왜냐하면 같은 의미이기 때문에 그렇습니다.
그 다음에 19 페이지로 가보면,
여기에 w가 이번엔 대문자를 등장했습니다.
여기 캐릭터클래스에서는
대문자와 소문자가 완전히 다른 의미를 갖게 됩니다.

정반대의 의미를 갖는다는 뜻입니다.
이렇게 문자가 왔다는 것은 정반대의미기 때문에
워드가 아니다라는 뜻이 되는 거죠.

그러면 워드가 아닌 것이 여기 있는 요소스
상에서 보조, 
여기 있는 공백 그리고 여기 있는 요콜론 요점 그리고 여기 공백
그리고 특수문자들 그리고 특수 문자들
이런 것들은 어디에 해당이 되지 않기 때문에
표시가 안되는 거죠.
그 다음에 나머지 것들은 여러분들 이미 뭔지 알고 있는거기
때문에 제가 설명드릴 필요는 없겠네요.
그 다음에 d라는 것은 ddg에 약자일 거구요.
dg는 0부터 9까지의 숫자를 의미하죠.
그렇기 때문에 이렇게 하게 되면 여기 있는 숫자들을 가리키는
수량자가 된 숫자들을 가리키는
이 캐릭터클래스가 되는 것이죠. 그리고 이렇게 대문자 d인
경우에는 반대 의미이기 때문에 숫자가 아닌 것들만 이렇게 선택을 하고
있죠. 그리고 이 밑에 있는 요것은 
요것과 요것에 의미가 같다란 데서
결과도 같죠.

그 다음에 나오는 것은 워드바운더리라고 하는 이 패턴 이구요.
이 패턴을 이용하면 어떤 단어를 여러분 식별할 수가 있습니다. 예를 들며
여기 있는 텍스트를 제가 카피해서 그거를
휴대전화 붙여넣기를 하구요.
카피가 잘 안되더라구요
자 복사해서 붙여넣기하고 여기에다가 이렇게 b 라고 하고
그 다음에 역시 /w를 하게 되면 문자를
이 찾게 되죠.

 그래서 여기에 있는 요문자들이 이렇게 쭉 있는데 그 문자
앞에 워드바운더리가 붙어 있기 때문에
보시는 것처럼 각각의 단어가 시작되는 지점들이 강조 표시가 되어 있습니다.
만약에 워드 바운더리를 뒤로 빼게 되면 보시는 것처럼 단어가 끝나는
지점이 강조 표시되어 있는 것을 볼 수가 있죠.
그리고 만약에 어떤 단어를 지목하고 싶다.
그렇다면 단어들을 선택하고 싶다면 이렇게 비로 감싸주면 되는데
이럴 경우에는 단어가 하나인 것만 강조 표시가 될겁니다.
그렇기 때문에 단어가 하나 이상인
그 캐릭터가 하나 이상이 문자가 하나 이상인 것을 찾기 위해서는
이렇게 뒤에다가 더블 +를 붙여주면
이렇게 단어들을 식별 해주고 있는 것을 볼 수가 있죠.
이런 워드 바운더리를 쓸 수 있는 그런 맥락은 예를 들어 이런
경우가 있을 수 있죠. 밑에 보시면 캡과 콩캐시 있는데, 여러분이 캐슬
어차 싶다. 그런데 콩퀘다는 캐시 들어가 있잖아요. 그때 어둠 
널이를 이용해서
b라고 하고 캐디라고 하면 보시는 것처럼 캐슬은 선택이 되질
않습니다.
만약에 여기에 있는 욥이를 뒤로 보내게 되면 그때는 콘케세서
이 캐시케3 뒤쪽에 있는 단어의 바운더리를 선택했기 때문에 이 콘캔
해서 캡 부분만 강조된 것을 볼 수가 있죠.
앞에 있느냐 뒤에 있느냐에 따라서 다른 결과를 만들어 낸다는 겁니다.
그 다음 페이지에 나오는 것은 대문자인데요. 대문자 p는 예상
하시겠지만 소문자 b의 반대 의미를 갖는다라는 것을 알 수가 있죠.
그래서 여기서 바운더리를 지정하고 요점을 하게 되면
보시는것처럼
요렇게 이 단어에 가장 앞쪽에 있는 어떠한 캐릭터가 선택이 되죠.
요 캐릭터는 점이기 때문에 케또 선택이 되고 공백도 선택이 될 수
있는 거겠죠.
작은데 이 상태에서 다시
아 제가 잘못했네요. 요걸 대문자 필요로 하는 거죠. 그러면
방금 우리가 했던 소문자 b와는 정반대의 결과를 보여주고 있습니다.
그리고요 뒤에다가 다시 /b를 하게 되면
자요 바운더리가 아닌 것에 안쪽에 있는 a가 선택되는 것을 볼
수가 있죠.
이번에 살펴볼 것은 어떤 행에서 가장 앞쪽과 뒤쪽에 바운더리를 지정하는
패턴에 대해서 알아볼 건데요. 우리가 이전에 살펴보았던
요캐럿. 즉 행의 시작을 의미하고
그리고 달러 그리고 행에 c가장 끝을 의미하는 것과 거의 유사한 데
약간의 차이가 있습니다.
여기 보시면 보시는 것처럼
역술 내실 a라고 하는 것은 시작점이라고 하는 경계를 의미해요.
바로 시작 이라는 뜻이고요. 그리고 뒤에 점 세개 붙어 있다는 것은
임의의 문자 3개가 온다라는 뜻이죠.
즉 시작점에 세개의 문자이기 때문에 요것들이 선택이 요렇게 되는
것이죠. 그다음에 제트는 예상 하실 수가 있겠지만 a와는 반대인
이겠죠. 저희 뒤에 있는 경계를 의미합니다.
그리고 거기에 .이 3개가 붙어 있기 때문에
요것 12세계에서 요렇게가 선택이 되는 거죠. 그런데 아까 제가
잠깐 언급한 것처럼 자의 캐럿과
역슬래시 a에 차이 달러와 역설에 세트의 차이도 마찬가지겠죠.
이건 어떤 차이가 있는지를 좀 보여드릴께요. 우선 정규표현식에서는
멀티라인이란 것이 있습니다. 멀티라인은 여러 행에 대해서 패턴을
적용한다라는 뜻인데요.
여기 보시는 것처럼 제가 자캐렇다고 2r이라고 하게 되면, 

멀티라인 일대 자각 어이 r이라는
행으로 시작하는 문자들이 이렇게 선택된 것을 볼 수가 있죠.
그런데 똑같은 멀티라인에서도
요렇게 역슬레쉬a라고 하는 저 패턴은 사용하게 되면 멀티라인 임에도
불구하고 첫 번째 행에 있는 첫 번째 문자만을 가리키게 됩니다.
반대로 제가 요끝에 다가 test test 테스트라고 했을 때
테스트 달러를 하면 보시는 것처럼 테스트로 끝난 행들이 전부다
선택이 됐죠. 그런데
제트라고 이렇게 하게되면 보시는 것처럼 이 전체에서 멀티라인이라고
할지라도 가장 끝에 있는 것이 선택되는 것을 볼 수가 있습니다.

댓글 0개

등록된 댓글이 없습니다.

Total 9건 1 페이지

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

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

Menu