Meta문자
- ^ : 문자열 시작 패턴 : ^abc : abc로 시작하는 문자열
- $ : 문자열 끝 패턴 : abc& : abc로 끝나는 문자열
- * : 0개 이상 : \d* : 숫자 0개 이상
- + : 1개 이상 : \d+ : 숫자 1개 이상
- . : 문자 1개 : . : 아무 문자 1개
- .* : 문자 1개 이상 : .* : 아무 문자 1개 이상
- ? : 문자 1개 or 0개 : a? : a 1개 or 0개
- {n} : 문자 n개 : \d{3} : 숫자 3개
- {a,b} : 문자 a개 이상, b개 이하 : \d{1,5} : 숫자 1개 이상 5개 이하
- \ : 특수 문자 표시 : *? : *?
- [] : 리스트 중 일치 : [A-Z]{2} : A~Z 중 2개
- [^] : 리스트 제외 : [^TAB] : 탭을 제외한 모든 글자
- | : 또는 (or) : A|B : A와 B
특수문자
- \d : 숫자 1개
- \D : 숫자 이외 문자 1개
- \s : 공백이나 탭 1개
- \S : 공백이나 탭 이외 문자 1개
- \w : 알파벳 1개
- \W : 알파벳 이외의 문자 1개
- \A : 문자열 처음과 매치
- \Z : 문자열 끝과 매치
- \b : 단어 구분자
- \B : \b와 반대
함수
- math() : 문자열의 처음부터 정규식과 매치되는지 조사
- search() : 문자열 전체를 검색하여 정규식과 매치되는지 조사
- findall() : 정규식과 매치되는 모든 문자열을 리스트로 반환
- finditer() : 정규식과 매치되는 모든 문자열을 반복 가능한 객채로 반환
컴파일 옵션 ex) re.compile("a.b", re.DOTALL), or re.compile("a.b", re.S)
- DOTALL(S) - . 이 줄바꿈 문자를 포함하여 모든 문자와 매치할 수 있도록 한다.
- IGNORECASE(I) - 대소문자에 관계없이 매치할 수 있도록 한다.
- MULTILINE(M) - 여러줄과 매치할 수 있도록 한다. (^, $ 메타문자의 사용과 관계가 있는 옵션이다)
- VERBOSE(X) - verbose 모드를 사용할 수 있도록 한다. (정규식을 보기 편하게 만들수 있고 주석등을 사용할 수 있게된다.)
python 코드 https://github.com/simbj9074/Python-re/blob/main/re.ipynb
[참고 문헌] 점프 투 파이썬, "https://wikidocs.net/1669"
'개발공부 > Python' 카테고리의 다른 글
| Python :: ark파일 읽기 (0) | 2022.03.11 |
|---|---|
| Python :: DataFrame 출력 개수 조정 (0) | 2022.01.20 |
| Python :: 유용한 기능 | 함수 파라미터 설명 (0) | 2022.01.14 |
| Python :: 유용한 기능 tqdm, 진행 상황 (0) | 2022.01.14 |
| Python :: 파일 복사, 이동, 삭제, 파일 명 변경(rename) (0) | 2022.01.14 |