정규표현식
- regular expression
- 특정한 패턴과 일치하는 문자열을 '검색', '치환', '제거'하는 기능을 지원
- 정규표현식의 도움 없이 패턴을 찾는 작업 (Rule 기반)은 불완전하거나, 작업의 cost가 높음
- e.g) 이메일 형식 판별, 전화번호 형식 판별, 숫자로만 이루어진 문자열 등
raw string
- 문자열 앞에 r이 붙으면 해당 문자열이 구성된 그대로 문자열로 반환
a = 'abcdef\n' # escape 문자열
print(a)
b = r'abcdef\n'
print(b)
기본 패턴
- a, X, 9 등등 문자 하나하나의 character들은 정확히 해당 문자와 일치
- e.g) 패턴 test는 test 문자열과 일치
- 대소문자의 경우 기본적으로 구별하나, 구별하지 않도록 설정 가능
- 몇몇 문자들에 대해서는 예외가 존재하는데, 이들은 특별한 의미로 사용됨
- . ^ $ * + ? {} [] \ | ()
- .(마침표) : 어떤 한 개의 character와 일치 (newline(엔터) 제외)
- \w : 문자 character와 일치 [a-zA-Z0-9_]
- \s : 공백 문자와 일치
- \t, \n, \r : tab, newline, return
- \d : 숫자 character와 일치 [0-9]
- ^ = 시작, $ = 끝 각각 문자열의 시작과 끝을 의미
- \가 붙으면 스페셜한 의미가 없어짐. 예를 들어 \.는 . 자체를 의미. \\는 \를 의미
- 자세한 내용은 링크 참조 https://docs.python.org/3/library/re.html
search method
- 첫번째로 패턴을 찾으면 match 객체를 반환
- 패턴을 찾지 못하면 None 반환
import re
m = re.search(r'abc', 'abcdef')
print(m.start())
print(m.end())
print(m.group())
import re
m = re.search(r'abc', '123abdef')
print(m)
import re
m = re.search(r'\d\d\d\w', '112abcdef119')
print(m)
import re
m = re.search(r'..\w\w', '@#$%ABCDabcd')
print(m)
metacharacters (메타 캐릭터)
[] 문자들의 범위를 나타내기 위해 사용
- [] 내부의 메타 캐릭터는 캐릭터 자체를 나타냄
- e.g)
- [abck] : a or b or c or k
- [abc.^] : a or b or c or . or ^
- [a-d] : -와 함께 사용되면 해당 문자 사이의 범위에 속하는 문자 중 하나
- [0-9] : 모든 숫자
- [a-z] : 모든 소문자
- [A-Z] : 모든 대문자
- [a-zA-Z0-9] : 모든 알파벳 및 숫자
- [^0-9] : ^가 맨 앞에 사용되는 경우 해당 문자 패턴이 아닌 것과 매칭
import re
m = re.search(r'[cbm]at', 'cat')
print(m)
import re
m = re.search(r'[0-4]haha', '7hahah')
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #딥러닝강의