본문 바로가기

Regex

기본적인 정규표현식 요점.

반응형


\a : 벨 문자 매치 (\u0007)

\b : 백스페이스 문자 매치

\t : 탭 문자 매치

\r : 캐리지 리턴 문자 매치

\v : 세로 탭 문자 매치

\f : 폼 피드 문자 매치

\n : new line 문자 매치 1

\e : 이스케이프 문자 매치

\nnn : 입력된 숫자를 8진수로 해석한 수에 해당하는 문자 매치

\xnn : 입력된 숫자를 16진수로 해석한 수에 해당하는 문자 매치

\cX, \cx : 컨트롤 문자와 함께 눌려진 문자 매치2

\unnnn : 숫자에 해당하는 유니코드 문자 매치


[문자 그룹] : 해당하는 문자 그룹 중 하나라도 있으면 매치3

[^문자 그룹] : 문자 그룹에 매치되지 않으면 매치4

[시작 - 종료] : 시작부터 종료까지의 문자 매치5

. : 모든 문자 매치

\w : 모든 word 매치6

\W : 모든 non-word 매치7

\s : 공백 문자 매치

\S : 공백 문자가 아닌 문자 매치

\d : 숫자 매치

\D : 숫자가 아닌 문자 매치


^ : 문자열 또는 줄의 시작

$ : 문자열 또는 줄의 끝8

\A : 문자열의 시작에서 가장 많이 나타난 문자 매치9

\Z : 문자열의 끝에서 가장 많이 나타난 문자 매치 (New line 포함)10

\z : 위와 동일. 단, New line 문자 미포함

\G : 특정 지점에서 가장 많이 나타난 문자 매치11

\b : \w 또는 \W 문자 사이에서 가장 많이 나타난 문자 매치

\B : \b의 반대


# 그룹

(정규식) : 괄호 안의 문자를 캡쳐.12

(?<name>정규식) : 괄호 안의 문자를 캡쳐하고 이름 지정13

(?:정규식) : 괄호 안의 문자는 캡쳐하지 않음

.(?=정규식) : 문자 후에 정규식이 나올 경우 문자를 매치

.(?!정규식) : 문자 후에 정규식이 나오지 않을 경우 매치. 반대도 가능

.(?<=정규식) : 문자 후에 나오는 정규식만 매치

.(?<!정규식) : 문자 후에 정규식이 나오지 않을 경우 매치. 반대도 가능

.(?>정규식) : 정규식을 백트래킹 하지 않음14


* : 앞의 정규식 또는 문자를 0회 이상 반복15

+ : 앞의 정규식 또는 문자를 1회 이상 반복16

? : 앞의 정규식 또는 문자를 0회 또는 1회 매치17

{n} : 이전의 문자를 n회 반복

{n,} : 이전의 문자를 n회 이상 반복

{n, m} : 이전의 문자를 n회 이상, m회 이하 반복


| : 괄호 안에서 한 구간이라도 일치하면 매치18

(?(정규식)yes|no) : 정규식이 일치하면 yes 부분 매치, 아니라면 no 부분 매치

(?(<name>yes|no) : 캡쳐된 name과 일치하면 yes, 아니면 no 부분 매치


$number : 캡쳐된 엘리먼트19

${name} : 캡쳐된 이름

$$: '$' 

$` : 매치되기 전의 모든 문자

$+ : 마지막으로 캡쳐된 그룹

$_ : 모든 입력 문자


#그룹 안에서

?i : 대소문자 구분 안 함

?m : 멀티라인 모드

?n : 이름 미지정된 그룹 캡쳐 안 함

?s : 싱글라인 모드

?x : 이스케이프 처리되지 않은 공백 문자는 무시


예: "a(?i)abort(?-i)ed" 를 "aAbortED"에 매치시키면 "Abort" 반환

예2: "(?x)a b\sc(?-x) d"를 "ab c d"에 매치시키면 "ab c d" 반환


(?#comment) : 인라인 주석

#(줄의 마지막에서) : 주석

반응형