1.
2. Regular Expression
ⓐ . - 개행 문자를 제외한 1자를 나타냄
ⓑ ^ : 문자열의 시작을 나타냄
ⓒ $ : 문자열의 종료를 나타냄
ⓓ [] : 문자의 집합을 나타냄
ⓔ | : A|B와 같은 경우 A 혹은 B를 나타냄
ⓕ () : 괄호 안의 정규식을. 직접(' , ')(괄호)를 매칭시키기 위하여 '\(' , '\)나 '[)]', '[)]'로 나타냄
ⓖ * : 문자가 0회 이상 반복됨을 나타냄
ⓗ + : 문자가 1회 이상 반복됨을 나타냄
ⓘ ? : 문자가 0회 혹은 1회 반복됨을 나타냄
ⓙ {m} : 문자가 m회 반복됨을 나타냄
ⓚ {m, n} : 문자가 m회부터 n회까지 반복되는 모든 경우를 나타냄
ⓛ {m,} :문자가 m회부터 무한 반복되는 모든 경우를 나타냄
ⓜ \w : 유니코드인 경우 숫자, 밑줄(underscore, ' _ ') 를 포함하는 모든 언어의 표현 가능한 문자
아스키 코드 인 경우 '[a-zA-Z0-9_]'와 동일함
ⓝ \W : 유니코드인 경우 숫자, 밑줄과 표현 가능한 문자를 제외한 문자를 제외한 나머지 문자,
아스키 코드인 경우 '[^a-zA-Z0-9_]'와 동일함
ⓞ \d : 유니코드인 경우 [0-9]를 포함하는 모든 숫자임. [0-9]와 동일함
ⓟ \D : 유니코드인 경우 숫자를 제외한 모든 문자
ⓠ \s : 유니코드인 경우 [\t\n\r\f\v]를 포함하는 공백문자
ⓡ \S : 유니코드인 경우 공백문자를 제외한 모든 문자
ⓢ \b : 단어의 시작과 끝을 나타내는 문자
3. 파이썬의 정규식 패턴은 re 모듈에서 제공되는 다음과 같은 함수를 통해 사용된다.
ⓐ re.search(pattern, string[ , flags]) : string 전체에 대해서 pattern이 존재하는지 검사하여 MatchObject인스턴스를 반환
ⓑ re.match(pattern, string[ , flags]) : string 시작 부분부터 pattern이 존재하는지 검사하여 MatchObject인스턴스를 반환
ⓒ re.split(pattern, string[, maxsplit = o] : pattern을 구분자로 string을 분리하여 리스트로 반환
ⓓ re.findall(pattern, string [, flags]) : string에서 pattern과 매치되는 모든 경우를 찾아 리스트로 반환
ⓔ re.finditer(pattern, string[, count]) : string에서 pattern과 일치하는 부분에 대하여 repl로 교체하여 결과 문자열을 반환함
ⓕ re.sub(pattern, repl, string[, count]) : string에서 pattern과 일치하는 부분에 대하여 repl로 교체하여 결과 문자열을 반환함
ⓖ re.subn(pattern, repl, string[, count]) : re.sub()함수와 동일하게 동작하나, 결과(결과문, 매칭횟수)를 튜플로 반환
ⓗ re.escape(string) : 영문자, 숫자가 아닌 문자에 대하여 백슬러시 문자를 추가함
ⓘ re.compile(pattern, [flags]) : pattern을 컴파일하여 '정규표현식 객체'를 반환함
4.
5.
5.
6.
중요한 점은 # -*- coding:utf-8 -*- 은 맨 첫줄에 써줘야 한다는 점이다!
7.
# -*- coding:utf-8 -*-
import re
r = bool(re.match('ba', 'I like banana')) # 문자열의 시작부터 검색
print(r)
r1 = bool(re.search('ba', 'I like banana')) #문자열 전체에 대해서 검색
print(r1)
실행결과
False
True
8.
# -*- coding:utf-8 -*-
import re
r = bool(re.match('ba', 'I like banana')) # 문자열의 시작부터 검색
print(r)
r1 = bool(re.search('ba', 'I like banana')) # 문자열 전체에 대해서 검색
print(r1)
# match를 이용하여 banana 추출해보기
str = 'I like banana'.replace(' ', '')
print(str)
r2 = re.match('.....banana', str)
print(r2)
print(bool(r2))
r3 = r2[0]
print(r3[5:])
9.
# -*- coding:utf-8 -*-
import re
p = re.compile(r'(\d+)-(\d+)-(\d+)')
a = p.search('2000-12-25')
year, month, day = a.groups() # 그룹을 각각 색인 나누어 리턴
print(year, month, day)
print(a.group(1), a.group(2), a.group(3))
print('====================')
print(a.group(0))
실행결과
2000 12 25
2000 12 25
====================
2000-12-25
10.
11.
12.
13.
(? = ...) 와 (?! ...)과 일치하는 문자열은 정규 표현식과 일치하는 문자열에 포함되지 않는다.
14.
15.
'국비교육' 카테고리의 다른 글
Python 4일차 (0) | 2019.05.03 |
---|---|
Python 3일차 (0) | 2019.05.02 |
자바 Lambda식 (0) | 2019.04.25 |
Python 1일차 (0) | 2019.04.24 |
MongoDB 7일차 (0) | 2019.04.23 |
댓글