regex
-
?
- 0개 이거나 1개 이거나
010-8752-4037
과01087524037
을 모두 검출하고 싶다면010?8752?4037
-
Anchors
^
&$
-^hello
: 처음 만나는 hello
-hello$
: 마지막에 만나는 hello -
.
- all occurences
-
Character Classes
\w
: 단어 문자. 구두점 같은 특수문자는 포함하지 않음. 응용하면[^\w]
는 문자가 아닌 모든 문자를 얻을 수 있게 된다.\w{5}
: 5개의 글자와 공백 하나\W
단어가 아님(?) ==> 알파벳 &_
\d
: 숫자\D
: not 숫자\s
: 공백문자\S
: not 공백문자
-
[]
- optional occurences
[Hh]ello
==> hello, Hello- 구간
[0-9]
[a-zA-Z]
- 반복 (수량자)
- 예를 들어 전화번호를 쿼리하는 정규표현식은 다음과 같이 작성할 수 있다.
010[-,. ]?[0-9][0-9][0-9][0-9][-,. ]?[0-9][0-9][0-9][0-9]
- 하지만
[0-9]
가 너무 자주 오는 것 같은데 =>{n}
을 사용하여 반복을 줄일 수 있다. 010[-,. ]?[0-9]{4}[-,. ]?[0-9]{4}
{3}
3개{3,}
3개 이상{1, 3}
1~3개
- 부정
- 대괄호 안에 들어있는
^
(caret)은 부정의 의미. [^a-zA-Z0-9]
: 대괄호 안에 명시된 패턴을 제외한 나머지 문자열을 찾는다.
- 대괄호 안에 들어있는
-
서브그룹
(on|ues|rida)
:|
를 기준으로 여러개를 묶는다.
-
flags : 정규표현식 맨 마지막에
/
를 붙이고 뒤에 키워드를 붙임g
lobal- case
i
nsensitive m
ultilines
ingle line