정규 표현식에서 사용하는 메타 문자(meta characters)에는
. ^ $ * + { } [ ] \ | ( )
※ 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자
[a-c] == [abc][0-5] == [012345]
🟡 [a-zA-Z] : 알파벳 모두
🟡 [0-9] : 숫자
\d - 숫자와 매치, [0-9]와 동일한 표현식이다.
\D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.
\s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
\S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.
\w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식이다.
\W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식이다.
\b - 단어의 경계
\B - 단어가 아닌것에 대한 경계
\A - 입력의 시작 부분
\G - 이전 매치의 끝
\Z - 입력의 끝이지만 종결자가 있는 경우
\z - 입력의 끝
(?!) - 앞부분에 (?!)라는 옵션을 넣어주게 되면 대소문자는 구분하지 않는다
※대문자와 소문자는 반대
\을 제외한 모든 문자와 매치됨
"a + 모든문자 + b"
-> a와 b라는 문자 사이 어떤 문자가 들어와도 모두 매치된다※a[.]b
-> "a + Dot(.)문자 + b"ca*t
정규식 | 문자열 | Match여부 |
---|---|---|
ca*t | ct | Yes |
ca*t | cat | Yes |
ca*t | caaat | Yes |
ca+t
정규식 | 문자열 | Match여부 |
---|---|---|
ca+t | ct | No |
ca+t | cat | Yes |
ca+t | caaat | Yes |
ca{2}t
->"c + a(반드시 2번 반복) + t"정규식 | 문자열 | Math여부 |
---|---|---|
ca{2}t | cat | No |
ca{2}t | caat | Yes |
ca{2,5}t
->"c + a(2~5회 반복) + t"정규식 | 문자열 | Math여부 |
---|---|---|
ca{2,5}t | cat | No |
ca{2,5}t | caat | Yes |
ca{2,5}t | caaat | Yes |
ab?c
정규식 | 문자열 | Math여부 |
---|---|---|
ab?c | abc | Yes |
ab?c | ac | Yes |
^ => 문자열 시작
$ => 문자열 종료
()=> 소괄호 안의 문자를 하나의 문자로 인식
| => 패턴 안에서 or 연산을 수행할 때 사용
\ => 정규 표현식 역슬래시()는 확장문자 (역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미)
01[016-9] -\d\d\d\d-\d\d\d\d
01[016-9] -^\d{3,4} -\d{4}
^01[016-9] -^\d{3,4} -\d{4}$