본문 바로가기
소셜네트워크

[소셜네트워크] 정규 표현식 (Regular Expression, RE)에 대하여

by LSB98 2024. 11. 10.
728x90
반응형

1. 정규 표현식 개요

  • 정규 표현식 (RE): 텍스트 내에서 특정 패턴을 찾기 위한 문자 집합을 정의하는 공식입니다. 주로 텍스트에서 특정 규칙을 가진 문자열을 추출할 때 사용합니다.
  • 활용:
  • 데이터 전처리에서 불필요한 부분을 제거하거나 필요한 정보를 추출할 때 유용합니다.
  • 예를 들어, 이메일 주소전화번호를 추출하는 데 자주 사용됩니다.

2. 메타 문자와 기본 문법

 

(1) 메타 문자 (Meta-characters)

메타 문자는 문자 자체가 아닌 특정 기능을 표현하기 위해 사용되는 문자들입니다.

  • []: 대괄호 안의 문자들 중 하나와 매칭.
    • [abc]: 텍스트에서 'a', 'b', 'c' 중 하나라도 포함하는 경우를 찾습니다.
    • [A-Za-z]: 대문자와 소문자 모든 알파벳을 의미합니다.
    • [0-9]: 모든 숫자를 의미합니다.
  • ^: 문자열의 시작을 의미합니다.
    • ^abc: 문자열이 'abc'로 시작해야 합니다.
  • $: 문자열의 을 의미합니다.
    • xyz$: 문자열이 'xyz'로 끝나야 합니다.
  • |: OR 연산자 역할을 합니다.
    • a | b: 'a' 또는 'b'가 포함된 문자열과 매칭됩니다.
  • .: 아무 문자 하나와 매칭 (단, 줄바꿈 문자는 제외).
    • a.c: 'a'와 'c' 사이에 어떤 문자가 오든 상관없는 경우와 매칭됩니다. 예: 'abc', 'a_c'.
  • ****: 이스케이프 문자로, 특수 문자를 일반 문자로 인식하게 합니다.
    • \.: 마침표 자체를 찾기 위해 사용.

(2) 수량자 (Quantifiers)

수량자는 문자가 몇 번 반복되는지를 나타내는 역할을 합니다.

  • +: 1회 이상 반복될 경우와 매칭합니다.
    • bo+: 'b' 다음에 'o'가 1회 이상 오는 경우 ('bo', 'boo' 등).
  • *: 0회 이상 반복될 경우와 매칭합니다.
    • bo*: 'b' 다음에 'o'가 없거나 여러 번 오는 경우 ('b', 'bo', 'boo' 등).
  • ?: 0회 또는 1회 있을 경우와 매칭합니다.
    • do?g: 'd' 다음에 'g' 또는 'dg'와 매칭됩니다.
  • {}: 반복 횟수를 명시합니다.
    • {n}: 정확히 n회 반복.
      • \d{3}: 숫자가 정확히 3번 나오는 경우와 매칭 (예: '123').
    • {n, m}: 최소 n번, 최대 m번 반복.
      • \d{2,4}: 숫자가 최소 2번, 최대 4번 나오는 경우 (예: '12', '123', '1234').

3. POSIX 표준 문법

  • POSIX 표준은 정규 표현식의 표준 규칙을 정의합니다.
  • 예를 들어, **[:digit:]**은 숫자, **[:alpha:]**는 알파벳과 매칭됩니다.
  • 이 문법은 보다 가독성이 좋은 형태로 문자 집합을 정의하는 데 도움을 줍니다.

4. Python에서 정규 표현식 사용

Python에서 정규 표현식을 사용하기 위해 re 모듈을 이용합니다.

  • 주요 함수:
    • re.match(pattern, string): 문자열의 처음부터 패턴과 매칭되는지 확인합니다.
    • re.search(pattern, string): 문자열 전체에서 패턴과 매칭되는지 확인합니다.
    • re.findall(pattern, string): 패턴과 매칭되는 모든 부분을 리스트로 반환합니다.
    • re.sub(pattern, replace, text): 매칭된 패턴을 다른 문자열로 대체합니다.

출처 : GPT

 

 

728x90
반응형