본문 바로가기
국비교육

Python 2일차

by Diligejy 2019. 4. 30.

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

댓글