Python - 정규표현식

개발자·2021년 11월 17일

Python

목록 보기
1/1
post-thumbnail

파이썬을 이용한 기본개념 공부 내용을 정리합니다.


정규표현식(Regular expressions)이란?

특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식언어 정규식이라고도 부르며
전화번호, 이메일 등 문자열을 필터링할때 주로 쓰인다


문법

메타 문자

정규식에서 일정한 의미를 가지고 쓰는 특수문자를 말한다. 메타 문자가 포함된 패턴을 찾으려면 문자 앞에 \를 넣어줘야 한다.

  • [] : 문자 클래스. 문자 클래스 안에 들어가 있는 문자는 그 바깥에서 하나의 문자로 취급된다.

  • ^ : 문자 클래스 내에서 ^는 not_

  • - : 범위
    [a-z]는 a에서 z까지의 문자

  • ^ : 문자열의 시작

  • $ : 문자열의 종료

  • . : 임의의 한 문자

    • a.b : a와b 사이의 모든 문자와 매치("a0b", "abb"는 가능 "abc"는 불가)
    • a..b : a와 b 사이 모든 문자 2개가 매치
  • | : or

  • ? : 앞문자가 없거나 하나있음

  • + : 앞문자가 1개이상

    • ca+t: 의 앞 문자인 a가 1번 이상 반복 매칭되면 매치
      “ct”는 “a”가 1번 반복되지 않아 매치 안됨
    • [a-z]+: a부터 z문자가 1회이상 나오면 매치
  • * : 앞문자가 0개이상

    • ca*t: 의 앞 문자인 a가 0번 이상 반복 매칭되면 매치
      “ct”는 “a”가 0번 반복되어 매치
  • {n,m} : 앞 문자가 n개 이상 m개 이하. {0,1}은 ?와 같다.

    • a{2}b: {}의 앞문자 a가 2번 반복되면 매치
      "ab"는 a가 한번 반복되서 매치 안됨
    • a{2,5}b: {}의 앞문자 a가 2~5번 반복되면 매치
      "aaaaab"는 매치
    • ab?c: ?는 {0,1}과 같으므로 b가 0~1번 나오면 매치
  • {n,} : 앞 문자가 n개 이상. {0,}은 *와 같고 {1,} 이면 +와 같다.

  • {n} : 앞 문자가 정확하게 n개. {n,n}과 같다.

  • () : 서브패턴을 괄호로 묶을 수 있다.

  • \s : 공백문자 [ \t\n\r\f\v]와 동일한 표현식

  • \b : 문자와 공백사이

  • \d : 숫자

  • \t : 탭

  • \w : 문자+숫자와 매치, [a-zA-Z0-9_]와 동일한 표현식

  • 대문자로 적으면 반대를 의미한다. ex) \D는 숫자가 아닌것을 의미한다. [^0-9]와 동일한 표현식


사용법

기본적으로 python에선 re module을 통해 정규표현식 기능을 제공한다.

import re
p = re.compile("[a-z]+")
#re.sub('패턴', '바꿀문자열', '문자열', 바꿀횟수)

내용추가 예정

profile
Beginner

0개의 댓글