리눅스 정규 표현식과 패턴 검색


정규표현식

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

메타 문자

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

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

Vim에서 정규 표현식을 사용한 검색

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

이 글이 도움이 되셨다면 공감 및 광고 클릭을 부탁드립니다 :)




© 2017. by Seongyun Byeon

Powered by zzsza