[정규표현식] 기초
정규표현식이란, 검색에서 사용할 매칭되는 같은 문자들의 패턴을 말한다.
. | newline을 제외한 오직 하나의 문자(dot). 예를 들어, “1..e” 정규표현식은 1을 포함하고 두 개의 문자 다음에 e 문자가 나오는 라인을 의미한다. |
? | 자신 앞에 나오는 정규표현식이 0개이거나 1개인 것과 일치하고 대부분 하나의 문자와 매칭할 때 사용한다. |
* | 바로 앞의 문자열이나 정규표현식에서 0개 이상 반복되는 문자를 의미한다(asterisk) |
+ | 자신 앞에 나오는 하나 이상의 정규표현식과 일치한다. *와 비슷하게 동작하지만 반드시 하나 이상과 일치한다. |
{N} | 정확히 N번 일치한다. |
{N,} | N번 또는 그 이상 일치한다. |
{N,M} | 적어도 N번 일치하지만 M번 일치를 넘지 않는다. |
- | 목록에서 처음과 마지막을 제외한 범위를 의미하거나 목록의 마지막 지점을 의미한다. |
^ | 라인의 시작에서의 공백 문자열을 의미한다. 또한 목록의 범위에 없는 문자들을 의미한다(charat) ^linux는 linux 문자열로 시작하는 모든 라인을 의미한다. |
$ | 라인 마지막에서의 공백 문자열을 의미한다. (dollar sign) linux$는 linux 문자열로 끝나는 모든 라인을 의미한다. |
^$ | 빈 줄과 일치한다. |
[ ] | 대괄호(bracket)는 단일 정규표현식에서 문자들을 집합으로 묶어준다. [xyz]: x, y, z 중 한 문자와 일치한다. [c-n]: c에서 n 사이에 속하는 한 문자와 일치한다. [B-Pk-y]: B에서 P까지 또는 k에서 y까지의 한 글자와 일치한다. [a-z0-9]: 소문자나 숫자 중 한 문자와 일치한다. [^b-d]: b에서 d 사이의 문자를 제외한 모든 문자를 나타낸다. ^은 바로 뒤에 나오는 정규표현식의 의미를 반대로 해석하도록 한다. |
\ | 특수문자를 원래의 문자 의미대로 해석한다.(백슬리시, escape) 즉, 메타문자들 앞에 백슬래시()문자를 붙이면 문자 그대로 해석하는 것이다. |
\b | 단어 끝의 공백 문자열을 의미한다. |
\B | 단어 끝이 아닌 곳에서의 공백 문자열을 의미한다. |
\< | 단어 시작에서의 공백 문자열을 의미한다. |
\> | 단어 끝에서의 공백 문자열을 의미한다. |
출처: 김태용, "김태용의 리눅스 쉘 스크립트 프로그래밍 입문", 제이펍, 2009.