Regular Expression
Regular Expression
-
특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식 언어
-
정규식에서 사용되는 기호를 Meta 문자라고 함.
Meta Characters
^
: 문자열의 시작을 표현^abc
: abc로 시작하는 문자열 (abc
,abc
de, …)
$
: 문자열의 종료를 표현man$
: man으로 끝나는 문자열 (man
, human
)
.
: 개행을 제외한 임의의 한 문자- ex)
Hello, World!
- ex)
[]
: 괄호 안의 문자를 찾음[abc]
: 문자열에서 a, b, c를 찾음 (huma
n,a
voc
a
do)
[^]
: 괄호 안의 문자를 제외한 문자를 찾음[^aeiou]
: 문자열에서 a, e, i, o, u를 제외한 문자를 찾음 (h
um
an
, av
oc
ad
o)
[-]
: 해당 범위의 문자를 찾음[a-z]
: 문자열에서 a~z의 문자를 찾음 (My
n
a
m
e
i
s
De
t
e
g
i
CE.)
|
: OR()
: 여러 패턴을 같이 사용하기 위한 그룹화
Repetition Characters
{n,m}
: 앞 문자가 n개 이상 m개 이하[0-9]{1,2}
: 숫자가 1개 이상 2개 이하 있음 (20
19
Dec5
Thursday)[a-z]{1,2}[0-9]{1,2}
: (2019Dec5
Thursday)
{n,}
: 앞 문자가 n개 이상[A-Za-z]{5,}
: 영문자가 5개 이상 (2019Dec5Thursday
)
{n}
: 앞 문자가 정확히 n개,{n,n}
과 동일[0-8]{2}
: 0부터 8까지 숫자가 2개 연속 (Samsung 931
st Day Stock : 3958
20
1)
?
: 앞 문자가 없거나 하나 있음,{0,1}
과 동일ho?
: h 뒤에 o가 있거나 하나 있음 (Ih
ave 1ho
use and 2 buildings.)
+
: 앞 문자가 하나 이상,{1,}
과 동일zz+
: z 뒤에 z가 하나 이상 있음 (fluzy, fluzz
y, fluzzzzzz
y)ad+
: a 뒤에 d가 하나 이상 있음 (ad
add
ad
aaaadddd
ad
)[0-9][0-9]+
: 숫자 뒤에 숫자가 하나 이상 있음 (03
da98
df8g4532
)
*
: 앞 문자가 0개 이상,{0,}
과 동일[0-9][a-z]*
: 숫자 뒤에 소문자가 0개 이상 있음 (0
3da
9
8df
8g
4
5
)[a-z]*[0-9]+
: 소문자가 0개 이상 뒤에 숫자가 1개 이상 있음 (Class94
SangwookLee094
)
Escape Characters
이스케이프의 경우 대문자로 작성시 그 반대를 찾음
\s
: 공백 문자 (\r
,\n
,\t
,\f
,\v
,) 를 찾음
\b
: 문자 사이의 공백 문자를 찾음\d
:[0-9]
와 동일- ex) I have
1
house and2
buildings.
- ex) I have
\t
: 탭 문자\w
: 단어 영문자 + 숫자 + 밑줄[0-9a-zA-Z_]
와 동일
Comments