관리 메뉴

쿰뱅이

정규 표현식(정규식) 본문

리눅스/Linux 입문

정규 표현식(정규식)

주년 2011. 10. 11. 14:03
반응형

정규 표현식(정규식)에는 세 가지 중요한 요소가 있다.

anchor : 텍스트의 한 행을 기준으로 패턴의 위치를 지정

character set : 찾고자하는 문자를 지정

modifier : 그 앞에 있는 문자 집합을 반복하는 횟수를 지정

 

anchor 에는

1) ‘^’ 

  - 문장의 처음을 나타낸다.

  - ex) ^H –> 행의 맨 앞에 있는 H

  - ex) H –> 행의 임의의 위치에 있는 H

 

2) ‘$’

  - 문장의 끝을 나타낸다.

  - ex) H$ –> 행의 맨 뒤에 있는 H

 

3) ‘\<’ (Vim)

  - 단어의 시작을 나타낸다.

  - ex) \<the –> the 와 other를 구별하여 the를 지정할 수 있다.

 

4) ‘\>’ (Vim)

  - 단어의 끝을 나타낸다.

  - ex) the\> –> the 와 other를 구별하여 the를 지정할 수 있다.

 

character set 에는

1) ‘.’

  - 행 종료 문자를 제외한 임의의 한 문자를 나타낸다.

  - ‘.’ 가 위치한 곳에는 반드시 한 글자가 위치하여야 한다.

  - ex) a.b  -> 일치하는 문자열 : acb, adb, azb 등

  - ex) ab.  -> 일치하지 않는 경우 : ab, abcd 등

  - ex) ^.$  -> 한 문자만으로 구성되는 행.

 

2) ‘[]’

  - 검색하려는 문자열에서 괄호 안의 문자 중에서 한 개를 정확하게 지정할 경우에 사용

  - ex) [a-z] –> 임의의 소문자 한 개 

  - ex) [0-9] –> 임의의 숫자 한 개

 

3) ‘[]’ 안에서 ‘^’

  - []안의 문자를 제외한 다른 문자

  - ex) [^0-9] –> 숫자를 제외한 임의의 문자 한 개

 

modifier 에는

1) ‘*’

  - 바로 앞의 문자를 0번 이상 반복(반복 횟수의 max는 지정 불가능).

  - * 앞에는 한 글자 이상의 단어가 반드시 와야 한다.

  - ex) a*b -> b, ab, aab 등

  - ex) *ab –> 불가능

 

2) ‘\{\}’ : 정규표현식(sed)

  - \{\} 앞의 문자나 문자열의 반복되는 회수를 임의대로 지정.

  - ex) go\{5\}ggle    → gooooogle

  - ex) go\{3,\}ggle   → gooogle, goooogle, gooooogle 등 (o가 3개 이상)

  - ex) go\{2,4\}ggle  → google, gooogle, goooogle (o가 2개이상 4개이하)

 

3) ‘+’ 특수문자 : 확장 정규 표현식(egrep or awk)

  - 바로 앞의 문자를 1번 이상 반복(반복 횟수의 max는 지정 불가능).

  - + 앞에는 한 글자 이상의 단어가 반드시 와야 한다.

  - ex) a+b -> ab, aab, aaab 등

  - ex) +ab -> 불가능

 

4) ‘?’ 특수문자 : 확장 정규 표현식(egrep or awk)

- 바로 앞의 문자가 하나 있거나 없는 것(반복 횟수 지정).

- ex ) 패턴 : try? → 일치하는 문자열 : tr, try

- ex ) 패턴 : a?c → 일치하는 문자열 : c, ac

   

5) ‘()’ 특수문자 : 확장 정규 표현식(egrep or awk)

- ()안의 글자들을 하나의 문자로 보며, awk문에서 반복횟수를 지정하기 위해서는

- ex) (hero_)+ –> hero_, hero_hero_ 등

- ex) (hero_)* -> null, hero_, hero_hero_ 등

반응형

'리눅스 > Linux 입문' 카테고리의 다른 글

[리눅스] vi 명령어  (0) 2011.10.17
기본으로 설치된 아파치 삭제하기  (0) 2011.10.11
httpd --help 옵션 설명  (0) 2011.10.11
리눅스 열린 포트 확인  (0) 2011.10.11
리눅스 아파치 설치 및 삭제  (0) 2011.10.11