그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다.
. ^ $ * + ? { } [ ] \ | ( )
[abc] : a,b,c중에 하나라도 들어 있는지 매치
"a" : 매칭
"before" : 매칭
"dude" : 매칭실패
[0-9] : 문자클래스 안의 '-'하이픈은 두 사이의 범위
자주사용하는 문자 클래스
ca*t
이 정규식에는 반복을 의미하는 * 메타 문자가 사용되었다. 여기에서 사용한 *은 * 바로 앞에 있는 문자 a가 0부터 무한대로 반복될 수 있다는 의미이다.
ca+t
반복을 나타내는 또 다른 메타 문자로 +가 있다. +는 최소 1번 이상 반복될 때 사용한다. 즉 *가 반복 횟수 0부터라면 +는 반복 횟수 1부터인 것이다.
ca{2,5}t
"c + a(2~5회 반복) + t"
ab?c
"a + b(있어도 되고 없어도 된다) + c"
python 기본 라이브러리
import re
p = re.compile("ca.e")
def print_match(m):
if m:
print("m.group() : ", m.group())
print("m.string : ", m.string)
print("m.start() : ", m.start())
print("m.end() : ", m.end())
print("m.span() : ", m.span())
else:
print("matching fail")
m = p.match("lesscare")
print_match(m)
m = p.search("good care")
print_match(m)
lst = p.findall("good care cafe")
print(lst)
출력결과
m.group() : care
m.string : careless
m.start() : 0
m.end() : 4
m.span() : (0, 4)
m.group() : care
m.string : good care
m.start() : 5
m.end() : 9