파이썬 기초

파이썬 python 정규표현식 (정규식) 문자열 추출 예제 정리

코니코니 2023. 1. 5. 16:00
반응형

파이썬 python 정규표현식 (정규식) 문자열 추출 예제 정리


Python에서 정규 표현식은 re 모듈에서 지원됩니다. 파이썬에서 정규 표현식을 사용하려면 먼저 import re를 사용하여 re 모듈을 가져와야 합니다. 여기서는 Python 정규식을 사용하여 수행할 수 있는 몇 가지 일반적인 작업에 대해서 설명합니다.

문자열에서 패턴 검색

re.search() 함수를 사용하여 문자열에서 패턴을 검색할 수 있습니다. 패턴이 발견되면 함수는 일치 개체를 반환합니다. 패턴이 없으면 함수는 None을 반환합니다.

문자열 시작 부분의 패턴 일치

re.match() 함수를 사용하여 문자열 시작 부분에 패턴이 있는지 확인할 수 있습니다. re.search()와 마찬가지로 이 함수는 패턴이 발견되면 일치 객체를 반환하고 패턴이 발견되지 않으면 None을 반환합니다.

문자열에서 패턴의 모든 항목 찾기

re.findall() 함수를 사용하여 문자열에서 패턴의 모든 항목을 찾을 수 있습니다. 이 함수는 일치하는 모든 목록을 반환합니다.

정규식을 사용하여 문자열 분할

re.split() 함수를 사용하여 패턴을 기반으로 문자열을 분할할 수 있습니다. 이 함수는 원래 문자열에서 분할된 하위 문자열 목록을 반환합니다.

문자열에서 패턴의 모든 항목 바꾸기

re.sub() 함수를 사용하여 문자열에서 패턴의 모든 항목을 다른 문자열로 바꿀 수 있습니다.

일치시키거나 검색하려는 패턴을 지정하려면 특수 문자와 구문을 사용해야 합니다. 이러한 특수 문자 및 구문을 "메타 문자"라고 합니다.

다음은 정규 표현식에 사용되는 몇 가지 일반적인 메타 문자입니다.
. (점) - 모든 단일 문자와 일치
^ - 문자열의 시작과 일치
$ - 문자열의 끝과 일치
* - 선행 문자 또는 패턴이 0개 이상 발생하는 항목과 일치
+ - 앞의 문자 또는 패턴이 하나 이상 나타나는 것과 일치
? - 선행 문자 또는 패턴의 0개 또는 1개 항목과 일치
{n} - 선행 문자 또는 패턴의 정확히 n번 항목과 일치
{m,n} - 선행 문자 또는 패턴의 최소 m 및 최대 n 발생과 일치
[] - 대괄호 안의 모든 문자와 일치
[a-z] - 모든 소문자와 일치
[A-Z] - 모든 대문자와 일치
[0-9] - 모든 숫자와 일치
[^a-z] - 소문자가 아닌 모든 문자와 일치
\d - 모든 숫자와 일치
\D - 숫자가 아닌 것과 일치
\w - 문자+숫자와 일치
\W - 문자+숫자가 아닌 것과 일치
\s - 모든 이스케이프 문자와 일치
\S - 이스케이프가 아닌 것과 일치

re 모듈을 사용하여 문자열에서 패턴 검색하는 방법

import re

# Find all occurrences of the pattern "ai" in the string "The rain in Spain falls mainly on the plain."
pattern = r"ai"
text = "The rain in Spain falls mainly on the plain."
matches = re.findall(pattern, text)
print(matches)  # Output: ['ai', 'ai', 'ai']

 

re 모듈을 사용하여 패턴을 검색하고 다른 문자열로 바꾸는 방법

import re

# Replace all occurrences of the pattern "ai" with "AI" in the string "The rain in Spain falls mainly on the plain."
pattern = r"ai"
text = "The rain in Spain falls mainly on the plain."
modified_text = re.sub(pattern, "AI", text)
print(modified_text)  # Output: "The rAIn in SpAIin falls mAIinly on the plAIin."

 

re 모듈을 사용하여 패턴을 검색하고 패턴을 기반으로 문자열을 분할하는 방법

import re

# Split the string "The rain in Spain falls mainly on the plain." on the pattern "ai"
pattern = r"ai"
text = "The rain in Spain falls mainly on the plain."
splitted_text = re.split(pattern, text)
print(splitted_text)  # Output: ['The r', 'n in Sp', 'n falls m', 'nly on the pl', 'n.']

 

보다 효율적인 사용을 위해 re 모듈을 사용하여 정규식 패턴을 compile 하는 방법

import re

# Compile a regular expression pattern
pattern = re.compile(r"ai")

# Use the compiled pattern to search for matches
text1 = "The rain in Spain falls mainly on the plain."
matches1 = pattern.findall(text1)
print(matches1)  # Output: ['ai', 'ai', 'ai']

text2 = "I have a pet cat."
matches2 = pattern.findall(text2)
print(matches2)  # Output: ['a']

 

정규표현식 compile 메타 문자 사용하기 (1)

import re

text = 'hi! i like burgers~'
com = re.compile(r'\w\w!').search(text).group()
print(com)  # hi!

정규표현식 compile 메타 문자 사용하기 (2)

import re

text = '111234'
com = re.compile(r'\d\w\S...').search(text).group()
print(com)  # 111234

 

정규표현식의 자세한 내용은 아래 링크를 참고하세요.

 

08-2 정규 표현식 시작하기

[TOC] ## 정규 표현식의 기초, 메타 문자 정규 표현식에서 사용하는 메타 문자(meta characters)에는 다음과 같은 것이 있다. > 메타 문자란 원래 그 문자…

wikidocs.net

 

반응형