Table of contents
1. Regular expression?
2. 구성요소
2-1 메타문자? 리터럴 문자?
2-2 메타 문자
2-3 리터럴 문자
예제
1. Regular expressions?
텍스트를 표현하는 일종의 규칙입니다. 컴퓨터 세계에서는 분야 막론하고 다양하게 쓰이고 있으며 반드시 익혀 두어야 하는 기능입니다.
2. 구성 요소
2-1. 메타 문자? 리터럴 문자?
메타 문자는 "*", "-" 등과 같은 특수 문자를 뜻한다.
리터럴 문자는 일반적인 문자를 뜻한다.
2-2 메타 문자
메타 문자는 상황에 따라 메타 문자로 인식되기도 하고 리터럴 문자로 인식되기도 합니다.
'^' : 시작을 의미함. 예를 들어 "^cat" 이라고 표현하면 cat 으로 시작하는 문자열 검색해줌
'$' : 끝을 의미함. 예를 들어 "cat$" 이라고 표현하면 cat 으로 끝나는 문자열 검색해줌
'[...]' : 괄호 안에 있는 내용들은 or 이나 범위를 뜻함. 예를 들어 [aB] 는 a 나 B, [0-9] 는 0부터 9까지 를 의미함.
'[^...]' : '^' 를 괄호 안에 사용할 경우엔 NOT 의 의미가 된다. 예를 들어 [^0-9] 는 숫자가 아닌것 이라는 의미를 지닌다.
'|' : or 의 의미를 지니고 있다. 예를 들어 'Kay|Kim' 는 Kay 와 Kim 중에 하나만 일치해도 된다는 의미를 지닌다.
'.' : 아무 문자와 매칭 가능함. 예를 들어 "A.B" 라고 표현할 경우 AaB ACB AXB 모두 매칭됨.
'(..)' : 일반적인 괄호와 동일한 역활. 범위를 한정시킴. 예를 들어 "(ABC|DEF):XYZ" 라고 표현 할 경우 ABC:XYZ 나 DEF:XYZ 가 매칭됨
'\<' : 단어가 시작되는 위치를 뜻하는데 줄바꿈되어 있는 경우에 유용함.
'\>' : 단어가 끝나는 위치를 뜻하는데 줄바꿈되어 있는 경우에 유용함.
'\' : Escape 메타 문자. 위에서 사용한 것과 용도가 명확히 다릅니다. \ 다음에 연달아 나오는 문자는 메타 문자가 아니라 일단 문자로 인식하게 됩니다. '\.' 이라고 표현하면 메타 문자 '.' 의 역활은 사라지고 그냥 문자로 취급됩니다. "ega.att.com" 을 찾고 싶을 때 "ega.att.com" 이라고 표현하면 "megawatt computing" 같은 텍스트가 검색될 수도 있지만, "ega\.att\.com" 이라고 검색하면 원하는 결과를 얻을 수 있습니다.
'?' : 바로 앞의 문자가 있거나 혹은 없어도 매칭. 예를 들어 'colou?r" 로 표현할 경우, color, colour 모두 매칭됨.
'+' : 바로 앞의 문자가 한개 이상 반복되는 경우 매칭됨. 예를 들어 'colo+r' 로 표현할 경우, color, coloor, colooor 이 매칭됨. 하지만 colr 은 'o' 가 하나도 없으므로 실패함.
'*' : 바로 앞의 문자가 0 개 이상 반복되는 경우에 매칭됨. 예를 들어 'colo*r' 로 표현할 경우, color, coloor, colooor, colr 모두 매칭됨.
2-3 리터럴 문자
메타 문자가 뜻과 역활을 가진 문자라면 리터럴 문자는 특정한 뜻이 없는 문자입니다. 우리가 흔히 말하는 텍스트 입니다.
정규 표현식을 사용하는 이유중의 하나가 텍스트를 편하게 다루기 위함이고 메타 문자도 그 목적을 위한 수단입니다.
예제
^cat$ : cat 만 적혀 있는 문자열
^$ : 비어 있는 행
^ : 모든 행
<H[12345]> : <H1>, <H2>, <H3>, <H4>, <H5> 태그 찾아줌
사이트
http://regexlib.com/
http://www.zytrax.com/