파이썬 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
정규표현식의 자세한 내용은 아래 링크를 참고하세요.
'파이썬 기초' 카테고리의 다른 글
파이썬 json 딕셔너리 파일 저장 읽기 가져오기 (0) | 2023.06.24 |
---|---|
파이썬 python 프로그래밍 개요 장점 및 기초 (0) | 2023.01.02 |
파이썬 에러 대처 예외 처리 중첩 이중 try except (0) | 2022.12.04 |
파이썬 스레드 쓰레드 (thread) 및 대기열 (queue) (0) | 2022.11.13 |
파이썬 라이브러리 모듈 다운로드 및 import 사용 방법 (0) | 2022.11.01 |