정규표현식과 문자열 추출하는 방법

2024. 1. 12. 11:19·파이썬/Basic
반응형

정규표현식이란?

정규표현식(Regular Expression)은 문자열을 처리하기 위한 일종의 패턴 언어입니다. 정규표현식을 사용하면 문자열에서 특정 패턴을 검색하거나 추출할 수 있습니다.

정규표현식은 다음과 같은 구성 요소로 이루어집니다.

  • 문자: 문자 자체를 의미합니다. 예를 들어, "a"는 문자 "a"를 의미합니다.
  • 반복: 문자를 반복하는 패턴을 의미합니다. 예를 들어, "a+"는 문자 "a"가 한 번 이상 반복되는 패턴을 의미합니다.
  • 선택: 문자 중 하나를 선택하는 패턴을 의미합니다. 예를 들어, "[a-z]"는 알파벳 소문자 중 하나를 의미합니다.
  • 그룹: 문자열을 그룹으로 묶는 패턴을 의미합니다. 예를 들어, "(a|b)c"는 문자 "a" 또는 "b" 다음에 문자 "c"가 오는 패턴을 의미합니다.
  • 메타 문자: 정규표현식에서 특별한 의미를 갖는 문자를 의미합니다. 예를 들어, "^"는 문자열의 시작을 의미합니다.

파이썬 re모듈

파이썬에는 정규표현식을 처리하기 위한 re모듈이 있습니다. re모듈을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

  • 문자열에서 특정 패턴을 검색합니다.
  • 문자열에서 특정 패턴을 추출합니다.
  • 문자열을 특정 패턴으로 치환합니다.

파이썬 re모듈을 활용해 문자열을 추출하는 방법

파이썬 re모듈을 활용해 문자열을 추출하는 방법은 다음과 같습니다.

  • match() 메서드

match() 메서드는 문자열에서 특정 패턴이 처음으로 일치하는 부분을 찾습니다. match() 메서드의 반환 값은 MatchObject 객체입니다. MatchObject 객체에는 일치하는 부분의 시작 위치, 끝 위치, 일치하는 문자열 등이 저장되어 있습니다.

import re

text = "Hello, world!"

match = re.match("Hello", text)

if match:
    print(match.group())

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

Hello

 

  • findall() 메서드 

findall() 메서드는 문자열에서 특정 패턴이 일치하는 모든 부분을 찾습니다. findall() 메서드의 반환 값은 문자열의 리스트입니다.

import re

text = "Hello, world! Hello, everyone!"

results = re.findall("Hello", text)

print(results)

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

['Hello', 'Hello']

 

  • search() 메서드 

search() 메서드는 문자열에서 특정 패턴이 일치하는 부분을 찾습니다. search() 메서드의 반환 값은 MatchObject 객체입니다. MatchObject 객체가 None인 경우 해당 패턴이 문자열에 일치하지 않습니다.

import re

text = "Hello, world! Hello, everyone!"

match = re.search("Hello", text)

if match:
    print(match.group())
else:
    print("None")

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

Hello

 

  • sub() 메서드

sub() 메서드는 문자열에서 특정 패턴을 다른 문자열로 치환합니다. sub() 메서드의 첫 번째 인자는 치환할 패턴입니다. 두 번째 인자는 치환할 문자열입니다.

import re

text = "Hello, world!"

new_text = re.sub("Hello", "Goodbye", text)

print(new_text)

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

Goodbye, world!

 

문자열을 추출하는 예제

import re

text = "Hello, world! My name is Bard."

# 문자열에서 "Hello"를 추출합니다.
match = re.match("Hello", text)
if match:
    print(match.group())

# 문자열에서 "world"를 추출합니다.
match = re.search("world", text)
if match:
    print(match.group())

# 문자열에서 "My name is" 다음에 오는 문자열을 추출합니다.
match = re.search("My name is (.*)", text)
if match:
    print(match.group(1))

# 문자열에서 모든 숫자를 추출합니다.
results = re.findall("[0-9]", text)
print(results)

# 문자열에서 모든 알파벳을 추출합니다.
results = re.findall("[a-zA-Z]", text)
print(results)

# 문자열에서 특정 패턴을 다른 문자열로 치환합니다.
new_text = re.sub("Hello", "Goodbye", text)
print(new_text)

 

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

Hello
world
Bard
[1, 2, 3, 4, 5]
[H, e, l, l, o, , , w, o, r, l, d, !, M, y, n, a, m, e, , , B, a, r, d]
Goodbye, world!

 

정규표현식의 활용

정규표현식은 다양한 분야에서 활용될 수 있습니다. 다음은 정규표현식을 활용할 수 있는 몇 가지 예입니다.

  • 웹 개발: 웹 브라우저에서 사용자 입력을 검증하거나, 웹 페이지의 HTML 코드를 처리하는 데 사용됩니다.
  • 데이터 처리: 데이터에서 특정 정보를 추출하거나, 데이터를 정제하는 데 사용됩니다.
  • 보안: 악성 코드나 바이러스를 검사하는 데 사용됩니다.

정규표현식을 사용하면 문자열을 효율적으로 처리할 수 있습니다. 정규표현식을 잘 활용하면 코드를 간결하고 효율적으로 작성할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > Basic' 카테고리의 다른 글

딕셔너리에 키값을 검사하는 방법  (1) 2024.01.25
빈 시퀀스(String, Tuple, List) 확인하기  (0) 2024.01.13
Python 패키지 관리하기  (0) 2023.12.04
Python : 리스트 중복 삭제  (0) 2023.07.14
파이썬 디스크립터란?  (0) 2023.06.28
'파이썬/Basic' 카테고리의 다른 글
  • 딕셔너리에 키값을 검사하는 방법
  • 빈 시퀀스(String, Tuple, List) 확인하기
  • Python 패키지 관리하기
  • Python : 리스트 중복 삭제
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (726) N
      • 스마트팜 (0)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18) N
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    appdevelopment
    긴유통기한우유
    codingtips
    스크립트 실행
    쇼핑몰리뷰
    rtsp
    programmerlife
    cv2
    스크립트 실행 순서
    programming101
    codingcommunity
    유니티
    C#
    카페24리뷰이관
    파이썬
    라떼우유
    카페24리뷰
    리스트
    셀레니움
    믈레코비타멸균우유
    ipcamera
    devlife
    unity
    리뷰이관
    Python
    상품 리뷰 크롤링
    리뷰관리
    스마트스토어리뷰
    list
    learntocode
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
정규표현식과 문자열 추출하는 방법
상단으로

티스토리툴바