사이트 내 전체검색
PHP
정규 표현식
로빈아빠
https://cmd.kr/php/303 URL이 복사되었습니다.

본문

; -------------------- 정규표현식 -------------------------

^     : 행의 첫 문자([] 안에서는 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*{

댓글목록

등록된 댓글이 없습니다.

PHP
871 (13/18P)

Search

Copyright © Cmd 명령어 3.15.17.60