Programming Language/Python

[Python] 정규표현식

LeeJaeJun 2023. 12. 29. 10:29
728x90
반응형

- 정규표현식(Regular expression, regex)

프로그래밍에서 문자열을 다룰 때 문자열의 일정한 패턴을 표현하는 일종의 형식 언어

파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 프로그래밍에서 사용되는 공통 문법

  • 대괄호([]): 대괄호 안에 포함된 문자들 중 하나와 매치. [] 안의 두 문자 사이에 하이폰(-)을 입력하면 두 문자의 사이의 범위를 의미. [] 안의 ^는 반대를 뜻함.

[cd] : 문자들 중 c 또는 d가 하나 이상 있으면 된다.

[a-e]: [abcde]와 동일

[1-3]: [123]과 동일

[^0-9]: 숫자를 제외한 문자만

[^abc]: a,b,c를 제외한 모든 문자와 매치

  • \d: 숫자와 매치. [0-9]와 동일한 표현식
  • \D: 숫자가 아닌 것과 매치. [^0-9]와 동일한 표현식
  • \s: whitespace(공백) 문자와 매치, [\t\n\r\f\v]와 동일
  • \S: whitespace 문자가 아닌 것과 매치, [^\t\n\r\f\v]와 동일
  • \w: 문자+숫자와 매치, [a-zA-Z-09]와 동일
  • \W: 문자+숫자가 아닌 문자와 매치, [^a-zA-Z0-9]

대문자로 표현된 문자 클래스는 소문자로 표현된 것과 반대

  • Dot(.)는 줄바꿈 문자인 \n을 제외한 모든 문자와 매치되며, Dot 하나당 임의의 한 문자를 나타냄.

a.e: a+모든문자+e. a와 e 사이에 어떤 문자가 들어가도 모두 매치됨. 단 ae는 a와 e 사이에 문자가 없으므로 매치되지 않음.

  • * : * 바로 앞에 있는 문자가 0부터 무한대로 반복될 수 있다는 의미

ca*t: c 다음의 a가 0부터 무한대로 반복되고 t로 끝이 난다.

  • + : *와 비슷하나 +는 최소 1번 이상 반복될 때 사용.
  • {} : 반복 횟수 고정. {m,n}은 반복 횟수가 m부터 n까지 고정됨. m 또는 n은 생략할 수도 있음.
    • {3,}의 경우 반복횟수가 3 이상, {,3}의 경우 반복 횟수가 3이하.
  • |: or와 동일한 의미. expr1 | expr2는 둘 중 하나의 형태만 만족해도 매치됨.
  • ^: 문자열의 맨 처음과 일치함을 의미. ^a 정규식은 a로 시작하는 단어와 매치됨.
  • $: ^와 반대의 의미로써, 문자열의 끝과 매치함을 의미. a$는 a로 끝나는 단어와 매치됨.
  • \: 메타문자의 성질을 없앨 때 붙임. ^나 $문자를 메타문자가 아닌 그 자체로 매치하고 싶은 경우 \^, \$ 형태로 사용.
  • (): 괄호 안의 문자열을 하나로 묶어 취급.

 

- 정규표현식과 관련된 메서드

  • match(): 시작부분부터 일치하는 패턴을 찾음
  • search(): 첫 번째 일치하는 패턴을 찾음
  • findall(): 일치하는 모든 패턴을 찾음
728x90
반응형