================================================================================================ 정규표현식 =======================================================================================================================
^ : 행의 첫 문자([] 안에서는 not의 의미)
. : 아무 문자나 한 문자 의미
[] : []사이의 문자 중 하나
* : 앞의 내용이 0번 이상 반복됨
\< : 단어의 시작
\n : 새 행 문자
$ : 행의 끝
\| : or의 의미
\+ : 앞의 내용이 1번 이상 반복됨
\> : 단어의 끝
\t : 탭 문자
\{min,max\} : min이상 max이하 반복됨
[a-z]\+
: a부터 z까지의 한 글자가 한번 이상 반복되는 것(소문자로 이루어진 단어)
[a-z]\+[0-9]\+ 또는 [a-z]\+[0123456789]\+
: 소문자가 앞에오고, 뒤에 숫자가 있는단어 'like0101', 'korea117'
OK\ [a-z]\+[0-9]*
: "OK "(OK와 공백)가 앞에오고 a부터 z중 한글자가 한번 이상 반복되고 0부터 9사이 문자가 0번이상 반복되는 단어.
^[0-9]\+.*
: 행의 첫문자가 0~9까지중의 숫자가 한번이상 있고, \n을 제외한 아무글자가 0번이상 반복되는 단어.
^[^0-9]\+.*
: 위와 같지만 행의 첫문자가 0~9가 아니란 의미이다.([]안에 있는 ^는 not의 의미)
.*[0-9]$
: \n을 제외한 문자가 0번이상 반복되고 끝이 숫자로 끝나는 문자열.
\<KO
: 단어의 첫글자가 "KO"로 시작하는 단어.
KO\>
: 단어의 끝자라가 "KO"로 끝나는 단어.
[A-z]\+[0-9]\{3,4\}
: 영문자로 시작하고, 3자리에서 4자리 숫자로 끝나는 문자열.(끝은 숫자인데, 숫자가 3~4개는 되어야 한다는 의미)
\(K\|k\)orea
: Korea 혹은 korea.(첫글자 k가 소문자 혹은 대문자란 의미)
========================================================================================
================= POSIX 문자 클래스 ============================================================================================================================================
[:alnum:] : 알파벳과 숫자 [A-Za-z0-9]
[:alpha:] : 알파벳 [A-Za-z]
[:cntrl:] : 제어 문자
[:blank:] : 탭과 공백 문자
[:digit:] : 숫자 [0-9]
[:graph:] : 제어 문자와 공백 문자를 제외한 문자
[:lower:] : 소문자 [a-z]
[:upper:] : 대문자 [A-Z]
[:print:] : 제어 문자를 제외한 문자. 즉 프린터 할 수 있는 문자
[:punct:] : [:graph:] 문자 중 [:alnum:]을 제외한 문자. ex_ !, @, #, $, %, ^...
[:space:] : 화이트 스페이스 ex_ 공백, 탭, 캐리지 리턴, 새 행, 수직 탭, 폼 필드
[:xdigit:] : 16진수
1. Vim에서 POSIX 문자 클래스를 사용할 때는 대괄호를 두개 사용해야 한다.
2. 정규 표현식은 셸 명령어인 grep에서도 사용할 수 있다.
[[:lower]]\+
: 소문자로 이루어진 문자열
정규표현식 - int \(\ \|\t|\n)\+var; , POSIX 클래스 - int[[:space:]]\+var;
: "int var;" 표현식
int[[:space:]]\+myfunc[[:space:]]*(.*)[[:space:]]*{
: int + 공백이 한번이상반복 + myfunc + 공백이 0번이상반복 + ( + 어떤문자던지 0번이상 반복 + ) + 공백이 0번이상 반복 + {
: int myfunc(void) 이라는 함수를 찾을때.
: grep 에서 사용 예)
- grep "int[[:space:]]\+myfunc[[:space:]]*(.*)[[:space:]]*{" ./ -Rlz
============================================================================================ 정규표현식(Vim 확장 정규표현식) =======================================================================================================
\i(소문자 아이) : 변수 지정에 사용되는 문자들 [_0-9A-Za-z]
\I(대문자 아이) : \i와 같지만 숫자는 제외
\k : keyword로 사용되는 문자 [_\.\-0-9A-Za-z>]
\K : \k와 같지만 숫자는 제외
\f : 파일 이름으로 사용하는 문자
\F : \f와 같지만 수자는 제외
\p : 프린트 가능한 문자
\P : \p와 같지만 숫자는 제외
\s : whitespace character (공백과 Tab)
\S : non-whitespace character
\d : 숫자 [0-9]
\D : 숫자가 아닌 문자[^0-9]
\x : 16진수 숫자 [0-9A-Fa-f]
\X : 16진수 숫자가 아닌 문자 [^0-9A-Fa-f]
\o : 8진수 숫자 [0-7]
\O : 8진수 숫자가 아닌 문자 [^0-7]
\w : 영문 단어에서 사용되는 문자 [0-9A-Za-z]
\W : 영문 단어에서 사용되지 않는 문자 [^0-9A-Za-z]
\h : 영문 단어의 시작에 사용되는 문자 [A-Za-z]
\H : 영문 단어의 시작에 사용되지 않는 문자 [^A-Za-z]
\a : 모든 알파벳 [A-Za-z]
\A : 알파벳이 아닌 문자 [^A-Za-z]
\l(소문자 엘) : 소문자 [a-z]
\L(대문자 엘) : 소문자가 아닌 문자 [^a-z]
\u : 대문자 [A-Z]
\U : 대문자가 아닌 문자 [^A-Z]
\e : Esc
\t : Tab
\r : CR
\b : Back Space
\n : LF
1. 대문자로 이루어진 단어
정규표현식 : \<[A-Z]\+\>
POSIX 문자클래식 : \<[[:upper:]]\+\>
Vim 확장 정규 표현식 : \<\u\+\>
2. "int myfunc(void) {"를 찾을때
POSIX 문자클래식 : int[[:space:]]\+myfunc[[:space:]]*(.*)[[:space:]]*{
Vim 확장 정규 표현식 : int\s\+myfunc\s*(.*)\s*{
[출처] Vim - 정규표현식|작성자 atlacpi
'Computer_language > Vim' 카테고리의 다른 글
VIM 강좌 - 검색 및 정규표현식 [출처] VIM 강좌 - 검색 및 정규표현식|작성자 소룡매냨 (0) | 2009.01.12 |
---|---|
VIM 강좌 - 블록 설정, 다중창 및 단축키 지정 [출처] VIM 강좌 (0) | 2009.01.12 |
VIM 강좌 - vim 으로 폼나는 개발자가 되어보자 [출처] VIM 강좌 (0) | 2009.01.12 |
가장 많이 사용되는 vim, vi 명령어 [출처] 가장 많이 사용되는 vim, vi 명령어|작성자 자바먹어 (0) | 2009.01.12 |
1. VIM [출처] VIM|작성자 료마 (0) | 2009.01.12 |