본문 바로가기

파이썬

Python의 정규식 초보자 가이드

정규식은 Python에서 텍스트 데이터로 작업하기 위한 강력한 도구입니다. 이 게시물에서는 정규 표현식의 기본 사항과 Python에서 정규 표현식을 사용하는 방법을 다룰 것입니다.

 

정규식이란 무엇입니까?

regex 또는 regexp라고도 하는 정규식은 검색 패턴을 정의하는 일련의 문자입니다. 이를 통해 문자열에서 특정 문자 패턴을 검색하고 다양한 방식으로 텍스트 데이터를 조작할 수 있습니다.

 

정규식은 다음과 같은 다양한 상황에서 유용합니다.

텍스트 검색 및 바꾸기: 정규식을 사용하여 문자열 내에서 특정 문자 패턴을 검색하고 다른 것으로 바꿀 수 있습니다.
데이터 유효성 검사: 정규식을 사용하여 사용자의 이메일 주소 또는 전화 번호가 올바른 형식인지 확인하는 등 입력 데이터의 유효성을 검사할 수 있습니다.
정보 추출: 정규식을 사용하여 텍스트 블록에서 모든 이메일 주소를 추출하는 것과 같이 텍스트 문자열에서 특정 정보를 추출할 수 있습니다.

 

Python에서 정규식 패턴을 만들기 위한 기본 구문은 다음과 같습니다.

import re
pattern = re.compile("regex pattern")

여기서는 re.compile()정규식 패턴을 만드는 데 사용됩니다. 패턴 자체는 일치시킬 패턴을 정의하는 문자와 메타문자의 조합을 포함하는 문자열입니다.

import re
string = "hello"
pattern = "he"
result = re.match(pattern, string)
if result:
  print("Match found!")
else:
  print("No match found.")

그러면 "Match found!"가 인쇄됩니다. 문자열 "hello"는 "he"로 시작하기 때문입니다.

공통 패턴: 다음과 같이 정규식에 사용되는 공통 패턴이 많이 있습니다.

"." (점) - 모든 문자와 일치
"\d" - 모든 숫자와 일치
"\w" - 모든 영숫자 문자와 일치
"+" - 선행 문자 중 하나 이상과 일치
"*" - 0개 이상의 선행 문자와 일치
"^" - 문자열의 시작과 일치
"$" - 문자열의 끝과 일치
다음은 정규식에서 이러한 패턴을 사용하는 방법에 대한 몇 가지 예입니다.

import re
string = "abc123def456"
pattern = "\d+"
result = re.findall(pattern, string)
print(result)

"\d+" 패턴이 하나 이상의 숫자와 일치하므로 "[123, 456]"이 인쇄됩니다.

import re

# 문자열의 패턴 일치
string = "The quick brown fox"
pattern = r"fox"
match = re.search(pattern, string)
print(match.group())  # Output: "fox"

# 한정사를 사용하여 특정 패턴과 일치
string = "aaaaabbbbbb"
pattern = r"a+b+"
match = re.search(pattern, string)
print(match.group())  # Output: "aaaaabbbbbb"

# 그룹을 사용하여 패턴의 일부 캡처
string = "John Smith (123) 456-7890"
pattern = r"(\w+) (\w+) \((\d{3})\) (\d{3}-\d{4})"
match = re.search(pattern, string)
print(match.group(1))  # Output: "John"
print(match.group(2))  # Output: "Smith"
print(match.group(3))  # Output: "123"
print(match.group(4))  # Output: "456-7890"

일치: 정규식의 가장 기본적인 용도는 문자열의 패턴을 일치시키는 것입니다.
예를 들어 re.search()함수를 사용하여 문자열에서 패턴을 검색할 수 있습니다.

이 함수는 패턴이 있는 경우와 None없는 경우 일치 개체를 반환합니다.

정규 표현식은 Python에서 텍스트 데이터로 작업하기 위한 강력한 도구입니다. "re" 모듈과 공통 패턴을 사용하여 문자열에서 특정 문자 패턴을 검색하고 다양한 방식으로 텍스트 데이터를 조작할 수 있습니다. 약간의 연습을 통해 정규식을 사용하여 Python 프로젝트에서 다양한 텍스트 관련 문제를 해결하는 데 능숙해질 수 있습니다.