- 복잡한 문자열을 처리할 때 사용하는 기법
- 훨씬 간편하고 직관적으로 코드를 작성할 수 있기에 사용한다.
- 문자열의 규칙이 복잡해질수록 정규식의 효용은 더 커진다.
메타 문자
원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 의미.
문자 클래스
문자 클래스로 만들어진 정규식
[ ] 사이의 문자들과 매치된다는 의미를 가짐.
Dot : .
정규 표현식의 메타문자 . 은 줄바꿈 문자인 \n을 제외한 모든 문자와 매치
ex. a.b
aab⇒ 매치된다.a0b⇒ 매치된다abc⇒ 매치되지 않는다.
반복 : *
바로 앞에 있는 문자가 0번이상 반복되는 경우
ex. ca*t
ct⇒ 매치된다. a가 c와 t 사이에서 0번 반복되기 때문cat⇒ 매치된다.caaat⇒ 매치된다.
반복 : ({m,n})
반복 : ?
{0, 1} 의 의미
ex. ab?c
- b가 있어도 되고 없어도 됨.
abc,ac모두 매치된다.
or :|
- 메타문자 | 는 or과 동일한 의미로 사용됨.
- 파이썬 예시 코드
python
p = re.compile("iphone|ipad")
m = p.match("iphone11")
^
- 문자열의 맨 처음과 일치함을 의미
달러 기호: $
- 메타문자 $는 and와 동일기호
- 문자열의 맨 마지막과 일치함을 의미
\s
- 리턴키 값을 포함
\A
- 문자열의 처음과 매치
^
- 패턴의 시작
- 반대
- 문자 클래스 안에
^가 사용될 때
- 문자 클래스 안에
- 여러줄의 문자열 각 라인의 처음과 일치
- 파이썬에서
re.multiline()쓰는 경우
- 파이썬에서
\b
- 단어 구분자. 띄어쓰기
\B
- 공백으로 구분된 단어가 아닌 경우에만 매치