본문 바로가기
IT_Engineer/DevOps_Unix & Linux (Bash)

[Linux] 정규 표현식

by 좋은데이피치 2020. 12. 7.
728x90

1. 정규표현식 정의

  • 검색에서 사용할 매칭되는 같은 문자들의 패턴

2. 메타 문자

  • 정규 표현식에서는 문자 그대로의 의미 이상으로 해석되는 메타문자 (문자들의 집합) 사용

※ 메타문자 연산자와 효과

연산자 효과
. 모든 문자 1개와 일치
? 앞에 존재하는 문자가 있을수도, 없을수도 있을 경우 사용
* 앞에 존재하는 문자가 0번 혹은 그 이상 반복되는 문자를 찾을 때 사용
+ 앞에 존재하는 문자가 1번 혹은 그 이상 반복되는 문자를 찾을 때 사용
[] 대괄호 사이에 존재하는 문자들 중 하나에 일치
[a-z] a부터 z까지 모든 영문자 소문자와 일치
^ 대괄호 사이에 존재할 때는 부정 [^a], 대괄호 밖에서는 문자 열의 시작과 일치
$ ^와 반대로 문자열의 끝과 일치할 경우
{N} 정확히 N번 일치
{N,} N번 또는 그 이상 일치
{N, M} 적어도 N번 일치하지만 M번 일치를 넘지 않음
\b 단어 끝의 공백 문자열
\B 단어 끝이 아닌 곳에서의 공백 문자열
\< 단어 시작에서의 공백 문자열을 의미. \<linux : linux 문자열로 시작하는 단어를 포함한 라인(vi, grep)
\> 단어 끝에서의 공백 문자열을 의미. linux\> : linux 문자열로 끝나는 단어를 포함한 라인

 


3. 확장 브래킷

※ 확장 브래킷과 각 브래킷 별 의미

브래킷 의미
[: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:] 16진수에서 사용할 수 있는 숫자
   
   
   

4. Vim에서 정규 표현식을 사용한 검색 예시

  • vim에서 ESC키를 누르고 /검색할 문자열 형태를 입력하고 엔터를 누르면 검색 가능
  • /없이$ : 없이로 끝나는 문자열 검색
  • /...자 : 4개 문자로 구성된 문자열 중 마지막 문자가 “자”로 끝나는 문자열 검색
  • /l*ve : l로 시작되는 문자부터 ve로 끝나는 모든 문자열 검색
  • /[Ll]ove : Love, love
728x90

최근댓글

최근글