반응형

파이썬 기본 문법 리뷰가 거의 마무리 되어간다!
아래의 말을 되세기며 끝까지 잘 마무리 해 보자! 
오늘은 정규 표현식에 대해 간략히 살펴볼 것이다.
We sometimes overlook the most basic things. Let us not forget that the most important thing is the basics.

# 07-1 정규 표현식 살펴보기
# 정규 표현식(Regular Expressions)은 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 곳에서 사용한다.
# 정규 표현식을 배우는 것은 파이썬을 배우는 것과는 또 다른 영역의 과제이다.

# ※ 정규 표현식은 줄여서 간단히 "정규식"이라고도 말한다.

# 정규 표현식은 왜 필요한가?
# 다음과 같은 문제가 주어졌다고 가정해 보자.

# 주민등록 번호를 포함하고 있는 텍스트가 있다. 이 텍스트에 포함된 모든 주민등록번호의 뒷자리를 * 문자로 변경해 보자.

# 우선 정규식을 전혀 모르면 다음과 같은 순서로 프로그램을 작성해야 할 것이다.
# 1. 전체 텍스트를 공백 문자로 나눈다(split).
# 2. 나뉜 단어가 주민등록번호 형식인지 조사한다.
# 3. 단어가 주민등록번호 형식이라면 뒷자리를 *로 변환한다.
# 4. 나뉜 단어를 다시 조립한다.

# 이를 구현한 코드는 아마도 다음과 같을 것이다.
data = """
kim 901010-1141232
lee 200920-1252423
"""

result = []
for line in data.split("\n"):
    word_result = []
    for word in line.split(" "):
        if len(word) == 14 and word[:6].isdigit() and word[7:].isdigit():
            word = word[:6] + "-" + "*******"
        word_result.append(word)
    result.append(" ".join(word_result))
print("\n".join(result))

# 반면에 정규식을 사용하면 다음처럼 훨씬 간편하고 직관적인 코드를 작성할 수 있다.
# 아직 정규식 사용 방법을 소개하지 않았으니 눈으로만 살펴보길 바란다.

import re
data = """
kim 901010-1141232
lee 200920-1252423
"""

pat = re.compile("(\d{6})[-]\d{7}")
print(pat.sub("\g<1>-*******", data))

# 정규 표현식을 사용하면 이렇게 간단한 예제에서도 코드가 상당히 간결해진다.
# 만약 찾으려는 문자열 또는 바꾸어야 할 문자열의 규칙이 매우 복잡하다면 정규식의 효용은 더 커지게 된다.
# 이제부터 정규 표현식의 기초부터 심화 부분까지 차근차근 알아보자.

# Review complete.

파이썬 정규 표현식 살펴보기 리뷰의 핵심!

  • 정규 표현식이 왜 필요한가?

파이썬 정규 표현식을 살펴보며 정리한 코드를 공유한다!
https://github.com/mgkim-developer/Python-Basic-Grammar/blob/main/(7-1)Regular%20expressions%20basics.py

 

GitHub - mgkim-developer/Python-Basic-Grammar: Python Basic Grammar Study

Python Basic Grammar Study. Contribute to mgkim-developer/Python-Basic-Grammar development by creating an account on GitHub.

github.com

 

반응형