Kim VamPa

[정규표현식][zvon tutorial] Page7, Page8 본문

공부/정규표현식

[정규표현식][zvon tutorial] Page7, Page8

Kim VamPa 2020. 4. 22. 09:25
728x90
반응형

[생활코딩]의 '정규표현식'강의를 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.


 zvon.org 홈페이지에서 소개하는 정규표현식 튜토리얼(Regular Expressions Tutorial)을 Page단위로 합니다 공부를 위한 URL은 다음과 같습니다. 

http://zvon.org/comp/r/tut-Regexp.html#Pages~Contents

목표

  • zvon홈페이지에서 제공하는 정규표현식 튜토리얼 Page7, Page8, Page9를 공부합니다. 

목차

1. Page7

2. Page8

3. 요약

 

 

1. Page7

 

 Page7에서는 원하는 문자의 후보군을 지정하는 방법에 대해서 배웁니다.  정규표현식에서는 문자의 후보군을 지정하는 방식으로 검색하기 위해 "[ ](대괄호)"를 사용합니다. 사용방법은 찾고자 하는 지정대상 문자들을 대괄호 안에 나열하는 것입니다.

여기서 조심해야할 것은 대괄호([ ])안에 아무리 많은 지정 문자가 들어 있더라도 문자 하나를 의미한다는 것입니다. 예제를 살펴보겠습니다.

 Case1에서는 "[oyu]" 정규표현식을 사용하였습니다. 의미는 대괄호에 있는 지정 문자에 해당하는 하나의 문자를 검색한다는 것입니다. 결과를 보시면 o, y, u에 해당하는 문자가 모두 검색된 것을 보실 수 있습니다.

 Case2는 "[dH]."정규표현식을 사용했습니다. "."는 앞에서 배웟듯이 모든 문자를 의미하는 특수문자입니다. 따라서 "[dH]."문자는 "d 또는 H에 해당하는 문자"+"모드  문자"의 조합을 가진 두 개의 문자 조합을 찾는 것입니다. 먼저 정규표현식 패턴에 해당되는 첫 번째 대상인 [First match]를 보면 "Ho"가 검색이 된 것을 볼 수 있습니다. 앞의 문자 "H"는 첫 번째 조건인 "d, H"에 해당하고 "o"는 두 번째 조건인 "모든 문자"에 해당합니다. [All matches]을 보시면 정규표현식 조건에 해당하는 두문자 조합 "Ho", "do", "do"가 검색된 것을 볼 수 있습니다.

 Case3는 "[owy][yow]" 정규 표현식을 사용하였습니다. 의미는 "o,w,y에 해당하는 문자" + "yow에 해당하는 문자"의 종합을 가진 두 개의 문자를 찾는다는 의미입니다. 검색 결과를 보시면 정규표현식 패턴에 해당하는 "ow", "yo"가 검색된 것을 볼 수 있습니다. 검색 대상 문장에 "do"가 검색이 안된 이유를 한번 살펴보겠습니다.  뒤의 문자 "o"는 조건에 만족하지만 "d"는 [owy] 조건에 해당하지 않기 때문에 "do"문자 조합은 검색이 되지 않았습니다. 

 

2. Page8

 

 Page8에서는 앞서 배웟던 "[](대괄호)"안의 후보군 지정 문자들이 많을 경우 사용하는 range에 대해 배웁니다. range는 문자 "-"를 사용합니다.  Case 1~4를 보게 되면 range를 사용할 수 있는 문자 대상이 소문자, 대문자, 숫자가 될 수 있는 것을 알 수 있습니다. 바로 예재를 보면서 range에 대해 이해해보겠습니다. 

  Case1 에서는 [C-K] 정규표현식을 사용하였습니다. 의미는 C문자에서 K까지의 범위에 해당하는 문자를 한 개를 찾는다는 의미입니다. 검색 결과를 보시면 "C, D, E, F, G, H, K"에 해당하는 문자들이 검색된 것을 볼 수 있습니다.

 Case2는 정규표현식에서 range를 사용하지 않고 일일이 후보 문자군을 지정되어 잇습니다. 하지만 결과는 range를 사용한 것과 동일하게 "C, D, E, F, G, H, K"문자를 모두 검색된 것을 볼 수 있습니다. 

 Case3 에서는 a에서 d까지 범위에 있는 문자를 검색하겠다는 의도로 정규표현식 [a-d]를 사용하였습니다. 검색 결과를 보면 "a, b, c, d"문자가 검색된 것을 볼 수 있습니다.

 Case4를 보면 range가 숫자에도 적용된 것을 보실 수 있습니다. 정규표현식으로 [2-6]이 사용되었고 결과를 보면 2~6의 범위의 문자가 모두 검색된 것을 볼 수 있습니다.

 Case5에서 사용한 정규표현식은 얼핏 보면 "C-K범위에 해당하는 한 문자" + "a-d 범위에 해당하는 한 문자" + "2-6에 해당하는 한 문자"의 조합을 가진 3개 문자를 찾는다고 생각할 수도 있습니다. 하지만 하나의 [](대괄호)에 있기 때문에 3개의 range에 해당하는 하나의 문자를 찾는 정규표현식입니다. 단순히 range를 3개를 사용했을 뿐 해당 정규식을 같은 의미의 다른 정규표현식으로 변경해보면 [CDEFGHKabcd23456]과 같은 의미의 입니다. 검색 결과를 보시면 대괄호 안에 지정한 문자들이 무도 검색된 것을 볼 수 있습니다.  

 

 

2. 요약

1. [](대괄호)안에 지정 후보군 지정 문자가 많을시 range("-")를 사용할 수 있습니다.

2. [](대괄호)안에 여러개의 range를 사용 할 수 있습니다.

 

Reference

Date

  • 2020.04.22 작성

 

 

 

 

728x90
반응형
Comments