Skip to content

Latest commit

 

History

History
91 lines (75 loc) · 5.74 KB

File metadata and controls

91 lines (75 loc) · 5.74 KB

Regular Expression

Regular Expression?

정규 표현식 (영어 regular expression, 간단히 regexp 또는 regex) 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다. 많은 프로그래밍 언어나 텍스트 에디터 에서 문자열의 검색과 치환을 위해 지원하고 있습니다. 메타문자(특수한 문자/기호) 를 이용하여 이루어진 패턴을 말합니다.

정규 표현식을 사용하면, 패턴을 통해 원하는 문자열을 찾아낼 수 있습니다.

메타문자

기본 메타문자


메타문자 설명
^x 문자열이 x로 시작합니다.
x$ 문자열이 x로 끝납니다
.x 임의의 한 문자를 표현합니다.
x+ x가 1번이상 반복합니다.
x? x가 존재하거나 존재하지 않습니다.
x* x가 0번이상 반복합니다.
x y
(x) ()안의 내용을 캡쳐하며, 그룹핑 합니다.
(x)(?:y) 캡쳐하지 않는 그룹을 생성할 경우 ?:를 사용합니다. 결과값 배열에 캡쳐하지 않는 그룹은 들어가지 않습니다.
x{n} x를 n번 반복한 문자를 찾습니다.
x{n,} x를 n번 이상 반복한 문자를 찾습니다.
x{n,m} x를 n번 이상 m번이하 반복한 문자를 찾습니다.

문자클래스


메타문자 설명
[xy] x,y중 하나를 찾습니다.
[^xy] x,y를 제외하고 문자 하나를 찾습니다. (문자 클래스 내의 ^는 not을 의미합니다.)
[x-z] [x-z] 사이의 문자중 하나를 찾습니다.
^ ^(특수문자)를 식에 문자 자체로 포함합니다. (escape)
\b 문자와 공백사이의 문자를 찾습니다.
\B 문자와 공백사이가 아닌 값을 찾습니다.
\d 숫자를 찾습니다.
\D 숫자가 아닌 값을 찾습니다.
\s 공백문자를 찾습니다.
\S 공백이 아닌 문자를 찾습니다.
\t Tab 문자를 찾습니다
\v Vertical Tab 문자를 찾습니다.
\w 알파벳 + 숫자 + _ 를 찾습니다.
\W 알파벳 + 숫자 + _ 를 제외한 모든 문자를 찾습니다..

수량자


탐욕적 수량자

탐욕적 수량자는 가능한한 가장 큰 덩어리를 찾으려 한다는 뜻 입니다. 탐욕적 수량자는 문자열 끝에서부터 찾습니다.

게으른 수량자

게으른 수량자탐욕적 수량자와는 반대로 가장 근접한 최소의 덩어리를 찾으려 한다는 뜻 입니다. 게으른 수량자는 문자열 앞에서부터 찾습니다.

탐욕적 수량자 게으른 수량자
* *?
+ +?
{n, } {n, }

POSIX 문자클래스

대괄호'[]'가 붙어있는 모양자체가 표현식 입니다. 문자클래스로 사용할 때에는 대괄호를 씌워서 사용해야합니다. ex) [[:alnum:]]

메타문자 설명
[:alnum:] 알파벳과 숫자를 찾습니다.
[:alpha:] 알파벳을 찾습니다.
[:digit:] 0~9 사이를 찾습니다.
[:lower:] 알파벳 소문자를 찾습니다.
[:upper:] 알파벳 대문자를 찾습니다.
[:blank:] 탭과 공백문자를 찾습니다.

Flag

Flag를 미설정 시 문자열 내에서 검색 대상이 여러 개여도 한 번만 찾게됩니다.

Flag 설명
g Global - 문자열 내의 모든 패턴을 찾습니다.
i Ignore Case - 문자열의 대소문자를 구별하지 않습니다.
m Multi Line - 문자열이 행이 바뀌어도 찾습니다.