정규표현식 (Regular Expression)

XTHK·2025년 3월 19일

Anaysis

목록 보기
4/23
import re 

메타문자 (meta characters)

문자가 가진 원래 의미가 아닌 특정한 기능을 수행하기 위한 문자
정규표현식에서 자주 사용되는 특수문자들이 존재

. : 임의의 단일 문자

  • ex) a.b : a1b / acb / ahb 와 매칭이 됨
  • 사이에 단일 문자가 들어가야 함

^ : 문자열의 시작

  • ex) ^a : abc와 매칭 가능 / bac와는 불가
  • 단, [ ]안에 들어올 경우, Not의 의미
    • ex) [^a] : a가 아닌 것

$ : 문자열의 끝

  • ex) a$ : a로 끝나는 경우와 일치
  • bba와 매칭 가능 / aab와는 불가

* : 앞의 문자가 0번 이상 반복

  • a* = '빈 문자열' / a / aa / aaa와 매칭 가능

+ : 앞의 문자가 1번 이상 반복

  • a+ = a / aa / aaa / ...와 매칭 가능

\ : 이스케이프 문자

  • 특수 문자를 일반 문자로 취급하게 함

( ) : 그룹 정의 : 괄호 사이에 들어가는 문자열을 그룹으로 캡쳐

  • 캡쳐된 그룹은 이후에 다시 사용하거나 검색 결과에서 별도로 접근 가능
  • (\d{3}) - (\d{4}) - (\d{4}) : 010-1234-5678
  • 양식을 지정하여 필터링 가능

{ } : 특정 횟수의 반복을 나타냄

  • a{2} = aa
  • a{2,4} = aa / aaa / aaaa

[ ] : 문자 클래스 정의

  • [abc] : a / b / c 중 하나와 일치
  • [a-z] : 소문자 알파벳 중 하나와 일치
  • [A-Z] : 대문자 알파벳 중 하나와 일치

패턴에 따른 문자 추출

  1. search / find : 일치하는 한 구간만 추출

  2. findall : 일치하는 모든 구간을 추출


패턴 설정

r'(\d+(\.\d+)?)(?=L)'

긍정형 전방 탐색

  • \d : 정수
  • + : 0번 이상 등장
  • . : 임의의 문자 하나
  • \. : '.' 문자
  • ()? : () 패턴이 등장할 수도 있고 아닐 수도 있음
  • (?=L) : L(단위)로 끝나는 경우, L은 제외하고 앞의 패턴을 캡쳐
profile
Analyse the world

0개의 댓글