정규식

Study

그룹

Groups and ranges

Chracter
| 또는
() 그룹
[] 문자셋, 괄호안의 어떤 문자든
[^] 부정 문자셋, 괄호안의 어떤 문가 아닐때
(?:) 찾지만 기억하지는 않음

Quantifiers

Chracter
? 없거나 있거나 (zero or one)
* 없거나 있거나 많거나 (zero or more)
+ 하나 또는 많이 (one or more)
{n} n번 반복
{min,} 최소
{min,max} 최소, 그리고 최대

Boundary-type

Chracter
\b 단어 경계
\B 단어 경계가 아님
^ 문장의 시작
$ 문장의 끝

Character classes

Chracter
\ 특수 문자가 아닌 문자
. 어떤 글자 (줄바꿈 문자 제외)
\d digit 숫자
\D digit 숫자 아님
\w word 문자
\W word 문자 아님
\s space 공백
\S space 공백 아님

설명

*
바로 앞에 있는 문자, 대괄호로 묶인 문자들이 0번 이상 나타납니다.
a*b*
aaaaaaa,aaaabbb,bbbbb

+
바로 앞에 있는 문자, 대괄호로 묶인 문자들이 1번 이상 나타납니다.
a+b+
aaabbb,aabbb,abbb

[]
대괄호 안에 있는 문자 중 하나가 나타납니다.
[A-Z]* (A부터 Z까지 0번 이상 반복)
APPLE, CAPITALS

()
그룹으로 묶인 하위 표현식입니다. 가장 먼저 평가됩니다.
(a*b)*
bbbbbb, abbab

{m,n}
바로 앞에 있는 문자, 하위 표현식, 대괄호로 묶인 문자들이 m번 이상 n번 이하 나타납니다.
a{2,5}b{1,2}
aab,aaaabb

[^]
대괄호 안에 있는 문자를 제외한 문자가 나타납니다.
[^A-Z]*
apple, lowercase

|
OR 의 의미를 갖습니다.
b(a| i | e)d
bad, bid, bed

.
공백 혹은 임의의 문자를 나타냅니다.
b.d
bad, b d, b$d

^
바로 뒤의 문자 혹은 하위 표현식이 문자열의 맨 앞에 나타납니다.
^a
apple, adsf, a

\
특수 문자를 원래 의미대로 쓰게 합니다.
\.
.

$
정규 표현식의 마지막에 종종 쓰이며, 바로 앞에 있는 문자나 하위 표현식이 문자열의 마지막이라는 뜻입니다.
[A-Z]*[a-z]*$
abc, AAa

?!
포함하지 않는다는 뜻입니다. 바로 뒤의 문자는 해당 위치에 나타나지 않습니다. 만약 특정 문자를 배제하고 싶다면 ^(?!a)*$
^((?![A-Z].)*$
no-caps-here