시스템/Shell Script2014. 10. 23. 14:23

정규표현식 이란?

 

 

정규표현식이란 간단하게 이야기해서 검색에서 사용할 매칭되는 같은 문자들의 패턴을 뜻합니다.

 

또한 정규표현식은 모든 언어(jsp,php,asp,javascript,perl 등등)에서 사용이 되며, 사용법에는 큰 차이는 없습니다.

 

 

우선 Shell Script 에서 사용되는 정규표현식에 대하여 알아보겠습니다.

정규표현식에서는 문자 그대로의 의미 이상으로 해석되는 메타문자 라고 부르는 문자들의 집합을 사용합니다.

 

 

연산자

내용

.

newline을 제외한 오직 하나의 문자와 일치합니다.
(예 : "1..e" 정규표현식은 1을 포함하고 두개의 문자 다음에 e가 나오는 라인을 의미합니다.

?

자신 앞에 나오는 정규표현식이 0개 이거나 1개인 것과 일치하고 대부분 하나의 문자와
매칭할 때 사용합니다.

*

바로 앞의 문자열이나 정규표현식에서 0개 이상 반복되는 문자를 의미합니다.

+

자신 앞에 나오는 하나 이상의 정규표현식과 일치합니다. * 와 비슷하게 동작하지만
반드시 하나 이상과 일치합니다.

{N}

정확히 N번 일치 합니다.

{N,}

N번 또는 그 이상 일치합니다.

{N,M}

적어도 N번 일치하지만 M번 일치를 넘지 않습니다.

-

목록에서 처음과 마지막을 제외한 범위를 의미하거나 목로의 마지막 지점을 의미합닏.

^

라인의 시작에서의 공백 문자열을 의미합니다. 또한 목록의 범위에 없는 문자들을 의미합니다.
(예: ^linux 는 linux 문자열로 시작하는 모든 라인을 의미합니다.)

$

라인 마지막에서의 공백 문자열을 의미합니다.
(예 : linux$ 는 linux 로 끝나는 모든 라인을 의미합니다.)

^$

빈 줄과 일치합니다.

[…]

대괄호는 단일 정규표현식에서 문자들을 집합으로 묶어줍니다.
예:
[xyz] : x, y, z 중 한 문자와 일치합니다.
[c-n] : c에서 n  사이에 속하는 한 문자와 일치합니다.
[B-Pk-y] : B에서 P까지 또는 k에서 y까지의 한 글자와 일치합니다.
[a-z0-9] : 소문자나 숫자 중 한 문자와 일치합니다.
[^b-d] : b 에서 d 사이의 문자를 제외한 모든 문자를 나타냅니다.
           또한 ^ 는 바로 뒤에 나오는 정규표현식의 의미를 반대로 해석하도록 합니다.

\

특수문자를 원래의 문자 의미대로 해석합니다.
예 : \$ : $ 문자 그대로 해석합니다.

\b

단어 끝의 공백 문자열을 의미합니다.

\B

단어 끝이 아닌 곳에서의 공백 문자열을 의미합니다.

\<

단어 시작에서의 공백 문자열을 의미합니다.
예 : \<linux    : linux 문자열로 시작되는 단어를 포함하고 있는 라인

\>

단어 끝에서의 공백 문자열을 의미합니다.
예 : linux \>   : linux 문자열로 끝나는 단어를 포함하고 있는 라인

 

 

 

 

아래의 내용은 정규표현식에서 사용하는 확장된 메타문자(브래킷) 입니다.

 

브래킷

내용

[:alnum:]

[A-Za-z0-9] 처럼 알파멧 문자와 숫자로 이루어진 문자열 입니다.

[:alpha:]

[A-Za-z] 과 동일한 알파벳 문자를 의미합니다.

[:blank:]

[ \x09] 스페이스와 탭을 의미합니다.

[:cntrl:]

컨트롤 제어 문자를 의미합니다.

[:digit:]

[0-9] 숫자를 의미합니다.

[:graph:]

[!-~] 공백이 아닌 문자를 의미합니다.(스페이스, 제어문자들은 제외)

[:lower:]

[a-z] 소문자

[:print:]

[ -~] [:graph:]와 비슷하지만 스페이스 문자를 포함합니다.

[:punct:]

[!-\:-@[-'{-~] 문장 부호 문자

[:space:]

[ \t\v\f] 모든 공백 문자(newline 줄바꿈, 스페이스, 탭)

[:upper:]

[A-Z] 대문자

[:xdigit:]

[0-9a-fA-F] 16진수에서 사용할 수 있는 숫자

 

 

예제)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'시스템 > Shell Script' 카테고리의 다른 글

date 명령어로 날짜,시간 계산하기  (0) 2013.05.23
Posted by 소울하트