- 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용되는 문자
- .^$*+?{}[]|()
[ ] -> '[ 와 ] 사이의 문자들과 매치'
[abc] -> a, b, c 중 한 개의 문자와 매치
[abc] - a : 매치 가능 ('a'가 있으므로) [abc] - before : 매치 가능 ('b'가 있으므로) [abc] - dude : 매치 불가 (a, b, c 어느 문자를 포함하고 있지 않다)
[ ] 안에 하이픈(-)은 범위를 나타냄
[a-c] == [abc] [0-5] == [012345]
[ ] 안에 ^ 가 있다면 반대의 의미임
[^0-9] == 숫자가 아닌 문자
줄바꿈 문자인 \n를 제외한 모든 문자와 매치됨
a.b - aab : 매치 가능 a.b - a2b : 매치 가능 a.b - a2c : 매치 불가
만약 a[.]b 라는 정규식이 있다면????
a.(문자 그대로의 .)b 와 매치 a0b와는 매치되지 않는다.
-
- ca*t -> a가 0 ~ (메모리가 허락 하는 한)∞ 개 반복 가능
- ct (o)
- cat (o)
- caaaaaaaaat (o)
- ca*t -> a가 0 ~ (메모리가 허락 하는 한)∞ 개 반복 가능
-
- ca+t -> a가 1 ~ ∞ 개 반복 가능
- ct (x)
- cat (o)
- caaaat (o)
- ca+t -> a가 1 ~ ∞ 개 반복 가능
-
- ca{2}t : a가 반드시 2번 반복
- ca{2,5}t : ark 2~5번 반복
ab?c - b가 있거나 없거나 ab?c = ac(o) ab?c = ab(o)