리눅스 정규 표현식과 패턴 검색
in Development on Linux
정규표현식
- 검색에서 사용할 매칭되는 같은 문자들의 패턴
메타 문자
정규 표현식에서는 문자 그대로의 의미 이상으로 해석되는
메타문자
라고 부르는 문자들의 집합을 사용연산자 효과 .
모든 문자 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
카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)
PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다
이 글이 도움이 되셨거나 다양한 의견이 있다면 댓글 부탁드립니다 :)