Akashic Records

7.3 정규 표현식 본문

Python for Beginners

7.3 정규 표현식

Andrew's Akashic Records 2023. 3. 23. 13:30
728x90

파이썬에서 정규 표현식(regular expression)을 사용하려면 re 모듈을 사용합니다. 정규 표현식은 문자열을 검색, 치환, 분리하는 데 사용되는 강력한 패턴 매칭 도구입니다.

다음은 re 모듈의 주요 기능과 예시 코드입니다.

1. search: 문자열에서 정규 표현식과 일치하는 부분을 검색합니다.

import re

pattern = r'\d+'  # 숫자를 찾는 정규 표현식
text = "My phone number is 123-456-7890."
match = re.search(pattern, text)

if match:
    print("Found:", match.group())  # Found: 123
else:
    print("Not found")

 

2. findall: 문자열에서 정규 표현식과 일치하는 모든 부분을 리스트로 반환합니다.

import re

pattern = r'\d+'
text = "I have 2 apples, 3 bananas, and 10 oranges."
matches = re.findall(pattern, text)

print(matches)  # ['2', '3', '10']

 

3. split: 정규 표현식을 기준으로 문자열을 분리합니다.

import re

pattern = r'\s+'  # 공백 문자를 찾는 정규 표현식
text = "I    love   Python"
words = re.split(pattern, text)

print(words)  # ['I', 'love', 'Python']


4. sub: 문자열에서 정규 표현식과 일치하는 부분을 다른 문자열로 치환합니다.

import re

pattern = r'\d+'
text = "I have 2 apples, 3 bananas, and 10 oranges."
replaced_text = re.sub(pattern, 'N', text)

print(replaced_text)  # I have N apples, N bananas, and N oranges.

 

5. match: 문자열 시작 부분에서 정규 표현식과 일치하는지 확인합니다.

import re

pattern = r'Hello'
text1 = "Hello, how are you?"
text2 = "Hi, Hello there!"

match1 = re.match(pattern, text1)
match2 = re.match(pattern, text2)

if match1:
    print("Match1:", match1.group())  # Match1: Hello
else:
    print("Not found in text1")

if match2:
    print("Match2:", match2.group())
else:
    print("Not found in text2")  # Not found in text2

 

6. finditer: 문자열에서 정규 표현식과 일치하는 모든 부분을 반복자로 반환합니다.

import re

pattern = r'\d+'
text = "I have 2 apples, 3 bananas, and 10 oranges."
matches = re.finditer(pattern, text)

for match in matches:
    print("Found:", match.group())  # Found: 2, Found: 3, Found: 10

 

정규 표현식 패턴을 미리 컴파일하여 반복적인 검색에 사용할 수 있습니다.

import re

pattern = re.compile(r'\d+')
text1 = "My phone number is 123-456-7890."
text2 = "I have 2 apples, 3 bananas, and 10 oranges."

match1 = pattern.search(text1)
matches2 = pattern.findall(text2)

print("Match1:", match1.group())  # Match1: 123
print("Matches2:", matches2)      # Matches2: ['2', '3', '10']

 

정규 표현식은 문자열 처리에서 매우 강력한 도구로, 다양한 패턴을 사용하여 복잡한 문자열 검색 및 처리 작업을 수행할 수 있습니다. re 모듈을 이용해 정규 표현식을 사용하면 복잡한 문자열을 더 쉽게 다룰 수 있습니다. 기능과 사용법을 더 자세히 알아보려면 파이썬 공식 문서를 참조하세요.

728x90

'Python for Beginners' 카테고리의 다른 글

7.5 기타 유용한 라이브러리  (0) 2023.03.23
7.4 로깅  (0) 2023.03.23
7.2 수학 함수  (0) 2023.03.23
7.1 시간과 날짜  (0) 2023.03.23
6.3 디버깅 기술  (0) 2023.03.21
Comments