^
: 특정 문자로 시작하는 패턴
ex) ^abc
는 문자열이 "abc"로 시작하는지 확인
$
: 특정 문자로 끝나는 패턴
ex) xyz$
는 문자열이 "xyz"로 끝나는지 확인
\d
: 모든 숫자
ex) \d
는 0부터 9까지의 모든 숫자와 일치
\D
: 모든 숫자가 아닌 문자
ex) \D
는 숫자가 아닌 모든 문자와 일치
\w
: 모든 알파벳 및 숫자
ex) \w+
는 하나 이상의 알파벳 또는 숫자와 일치
\W
: 모든 비알파벳 및 숫자
ex) \W
는 알파벳이나 숫자가 아닌 문자와 일치
\s
: 모든 공백 문자
ex) \s+
는 하나 이상의 공백 문자와 일치합니다.
\S
: 모든 비공백 문자
ex) \S+
는 하나 이상의 비공백 문자와 일치합니다.
.
: 임의의 문자(.의 갯수만큼의 문자)
ex) a.b
는 "a", 그 뒤에 어떤 문자든 하나, 그리고 "b"가 나오는 패턴을 의미
\.
: 마침표
ex) www\.example\.com
은 "www.example.com"에 일치합니다.
[abc]
: 특정 집합(abc)에 속하는 문자열
ex) [aeiou]
는 모음(a, e, i, o, u) 중 하나와 일치
{n}
: 해당 패턴이 n회 반복
ex) a{3}
는 "aaa"에 일치 또한 a{3,}
은 3개 이상의 a와 일치
{n, m}
: 해당 패턴이 n회 이상, m회 이하 등장
ex) b{2,4}
는 "bb", "bbb", "bbbb"에 일치
[^abc]
: 특정 집합(abc)에 속하지 않는 문자열
ex) [^0-9]
는 숫자가 아닌 모든 문자와 일치
*
: 패턴이 0번 이상 반복
ex) ab*c
는 "ac", "abc", "abbc", 등과 일치
+
: 패턴이 1번 이상 반복
ex) xy+z
는 "xyz", "xyyz", "xyyyz", 등과 일치
?
: 선택적 문자
ex) colou?r
는 "color" 또는 "colour"에 일치
|
: OR을 의미
ex) cat|dog
는 "cat" 또는 "dog"에 일치
(…)
: 캡처 그룹
ex) (\d{3})-(\d{4})
는 전화번호 형식에서 첫 번째 그룹은 국가 코드이고, 두 번째 그룹은 지역 코드
(.*)
: 모든 것 캡처
ex) (.*)@(.*)
는 이메일 주소에서 사용자 이름과 도메인을 각각 첫 번째와 두 번째 그룹으로 캡처
(?!())
:부정적 전방 탐색으로 괄호 안의 패턴이 문자열에 포함되지 않아야 매칭되는 패턴
ex) ^(?!.*[a-z])[A-Z]+$
문자열 안에 어디든지 소문자가 존재하면 안되고 대문자로 구성되어야함. 또 다른 예시로 ^(?!.*(apple|banana))[a-zA-Z]+$
를 보면 apple또는 banana가 문자열에 포함되어있으면 안됨.
이때
[]
안은 문자열에서 하나의 문자와 대응되고 ()안에는 문자열 전체와 대응