본문 바로가기

IT/ETC

정규표현식

정규표현식(Regular Expression)
-공통적인 기본 Meta문자-
^x  문자열이 x로 시작(캐럿 문자 ㄱ+한자)
x$  문자열이 x로 끝남
.x  임의의 한 문자를 표현(x가 마지막으로 끝남)
x+  x가 1번이상 반복
x?  x가 존재하거나 존재하지 않음
x*  x가 0번이상 반복
x|y  x 또는 y를 찾음
(x)  ()안의 내용을 캡쳐하며, 그룹화 함 //$1,$2,... //$0은 아무것도 검색이 안됨
(x)(y)  그룹화 할 때, 자동으로 앞에서부터 1번부터 그룹 번호를 부여해서 캡쳐, 결과갑에 그룹화한 Data가 배열 형식으로 그룹번호 순서대로 들어 감
(x)(?:y)  캡쳐하지 않는 그룹을 생성할 경우 ?:를 사용 (비캡쳐링 그룹)
x{n}  x를 n번 반복한 문자를 찾음
x{n,} x를 n번이상 반복한 문자를 찾음
x{n,m} x를 n번이상 m번이하 반복한 문자를 찾음

-문자클래스'[]' 내부에 해당하는 문자열의 범위 중 한 문자만 선택-
[xy]  x,y중 하나를 찾음
[^xy]  x,y를 제외하고 문자 하나를 찾음
[x-z]  x~z 사이의 문자중 하나를 찾음
\^  ^를 식에 문자 자체로 포함 (escape)
\b  문자와 공백사이의 문자를 찾음
\B  문자와 공백사이가 아닌 값을 찾음
\d  숫자를 찾음
\D  숫자가 아닌 값을 찾음
\s  공백문자를 찾음
\S  공백이 아닌 문자를 찾음
\t  Tab 문자를 찾음
\v  Vertical Tab 문자를 찾음
\w  알파벳+숫자+ _를 찾음
\W  알파벳+숫자+ _을 제외한 모든 문자를 찾음

-수량 한정자-
?  앞 패턴이 없거나 하나이어야 함 \d?
*  앞 패턴이 0개 이상 \d*
+  앞 패턴이 1개 이상 \d+
{n}  n개 있다
.  뉴라인(\n)을 제외한 모든 문자를 의미

-정규표현식의 플래그-
g  전역 검색, 첫 번째 일치 결과에서 멈추지 않고 전체 문자열에 대해 패턴 검색 /.*ab/
i  대소문자를 구분하지 않음 /.*ab/i 
m  여러줄 문자열에서 시작과 끝을 의미하는 특수 문자를 각줄에 적용 /.*ab/m