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

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 : 리스트 중복 삭제
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
  • 전체
    오늘
    어제
    • 분류 전체보기 (516) N
      • 상품 추천 (33)
      • MongoDB (4)
      • 하드웨어 (4) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (127)
        • Basic (40)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (48)
        • 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)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 다비즈
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바