본문 바로가기

언어/Python

[ Python ] re.search() 사용하기 (이름 찾기)

반응형

re.search는 파이썬의 re 모듈에서 제공하는 함수 중 하나로, 주어진 문자열에서 정규 표현식 패턴과 일치하는 첫 번째 부분 문자열을 찾습니다. re.search는 패턴이 문자열의 어느 위치에서든 일치하는지를 검색하며, 일치하는 부분이 있으면 re.Match 객체를 반환하고, 없으면 None을 반환합니다.

1. re.search 사용법

import re

result = re.search(pattern, string, flags=0)
  • pattern: 정규 표현식 패턴입니다.
  • string: 검색할 문자열입니다.
  • flags: 선택적 인수로, 정규 표현식의 동작을 수정하는 플래그입니다.

2. 플래그

  • re.IGNORECASE 또는 re.I: 대소문자를 구분하지 않습니다.
  • re.MULTILINE 또는 re.M: 여러 줄 모드. ^$가 각 줄의 시작과 끝을 의미하게 됩니다.
  • re.DOTALL 또는 re.S: 점(.)이 개행 문자(\n)도 포함하도록 합니다.

3. 예제

다양한 re.search 사용 예제를 통해 이 함수를 알아보겠습니다.

기본 예제

import re

# 예제 문자열
string = "Hello, my name is John. I live in New York."

# 정규 표현식 패턴
pattern = r"name is (\w+)"

# re.search를 사용하여 일치하는 부분 찾기
match = re.search(pattern, string)

if match:
    print("Match found!")
    print("Full match:", match.group())  # 전체 일치
    print("Captured group:", match.group(1))  # 첫 번째 캡처 그룹
else:
    print("No match found.")
Match found!
Full match: name is John
Captured group: John

플래그 사용 예제

import re

# 예제 문자열
string = "Hello, my name is John. I live in new york."

# 정규 표현식 패턴
pattern = r"new york"

# re.search를 사용하여 일치하는 부분 찾기 (대소문자 무시)
match = re.search(pattern, string, re.IGNORECASE)

if match:
    print("Match found!")
    print("Full match:", match.group())
else:
    print("No match found.")
Match found!
Full match: new york

여러 줄 검색 예제

import re

# 예제 문자열
string = """Hello, my name is John.
I live in New York."""

# 정규 표현식 패턴
pattern = r"^I live"

# re.search를 사용하여 일치하는 부분 찾기 (여러 줄 모드)
match = re.search(pattern, string, re.MULTILINE)

if match:
    print("Match found!")
    print("Full match:", match.group())
else:
    print("No match found.")
Match found!
Full match: I live

이 예제들은 re.search 함수를 사용하여 문자열에서 정규 표현식 패턴과 일치하는 부분을 찾는 방법을 보여줍니다. 플래그를 사용하여 대소문자 구분을 무시하거나 여러 줄 모드를 사용할 수도 있습니다. re.search는 첫 번째 일치 항목만 반환하기 때문에, 모든 일치 항목을 찾으려면 re.findall 또는 re.finditer를 사용할 수 있습니다.

반응형