7.파이썬독학 정규표현식

서창용·2022년 3월 5일
0

import re <-정규표현식을 지원하는 모듈

  1. 문자 클래스

    [ ] 사이의 문자들과 매치
    하이폰응ㄹ 사용하여 표혀 가능
    ex
    [a - c ] = [abc]

    [0 - 5] = [012345]

  2. Dot

    줄바꿈(\n)을 제외한 모든 문자와 매치
    ex) a.b = aab 일치, a0b 일치, aba는 불일치

  3. 반복

    a*b = ab사이에 0번을 포함한 반복 매칭
    a+b= ab사이에 반복 매칭이나 0번은 매치되지않음
    a{2}b = ab사이에 2개 반복되는게있음 매치
    a{2,5}b = ab사이에 a가 2이상 5이하면 반복되면 매치
    a?b = 0번 혹은 1번 이면 매치

m = p.match("python")  # 불일치가 하나라도 있으면 안나옴
m = p.search("3 python")  # 일치하는게 하나라도 있음 나옴
m = p.findall("python need") #일치하는걸 찾아서 리스트로 나옴

4.매치 객체

import re

p = re.compile("[a-z]+")
m = p.match("python")

print(m.group()) #매치된 문자열
print(m.start()) #첫 스타트 인덱스
print(m.end()) #마지막 인덱스
print(m.span()) #시작과 끝을 튜플로 리턴
결과
python
0
6
(0, 6)

5.컴파일객체

p = re.compile("a.b", re.S)  # .문자가 줄바꿈도 포함하도록
p = re.compile("[a-z]", re.I) # 대소문자 무시
p = re.compile("^pythion\s\w+",re.M) #^를 각 라인의 맨처음으로 인식
p = re.complie(r"""
&[#]
( 0[0-7]+
   ~~~어쩌고
         """, re.re.VERBOSE) #한줄이 아닌 공백이 있어도 컴파일
r'\\seiont' => r적고 뒤에 ''내용 적으면 백슬러시 2개로 나옴 즉, 그대로 인식

6.메타문자

| or
^ 맨처음
$ 맨끝
\b 공백
\w 단어

7.그룹핑

p = re.compile((ABC)+)

그룹핑된 문자열에 이름 넣기
p = re.compile(r"(?P<name>\w+)\s+~~~
m = p.search("paris in the spring")
print(m.gorup("name"))

8.전방탐색

긍정형 (?=)
검색조건에는 포함되나 결과에는 안나오고 싶을때

p = re.compile(".+(?=:)")
m = p.search("http://google.com")
print(m.group())

부정형 (?!)

.bat확장자 안나오게끔
p = re.compile(".*[.](?!bat$).*$, re.M)

9.문자열 바꾸기

import re
p = re.compile("(blue|white|red)")
m = p.sub("colour", "blue socks and red shoes")
print(m)
결과값 : colour socks and colour shoes

10.Greedy Non-Greedy

s = "<http><head><tile>"
print(re.match("<.*>", s).group()) #전체 반복만
print(re.match("<.*?>", s).group()) #최소한의 반복만
결과값
<http><head><tile>
<http>
profile
관신분야 : 브랜딩, 마케팅, 파이썬, 리액트 네이티브, MSA, 엘라스틱서치

0개의 댓글

관련 채용 정보