정규표현식을 왜 사용할까?
정규표현식
정규표현식이란 무엇일까?
정규표현식은 복잡하고 특정한 규칙을 가진 문자열을 처리할 때 사용하는 기법이다. 복잡한 문자열의 검색과 치환을 위해 사용되며, Python 뿐만 아니라 문자열을 처리하는 모든 곳에서 사용된다. 그리고 정규표현식을 잘 다루면 Python 외에 또 하나의 강력한 무기를 얻게 되는 것이다!
-
복잡하고 특정한 규칙을 가진 문자열을 처리할 때 사용하는 기법
-
Python 뿐만 아니라 문자열을 처리하는 모든 곳에 사용됨.
-
정규표현식을 정규식이라고도 한다.
그러면 정규표현식을 왜 사용할까?
다음과 같은 문제가 있다고 생각해보자.
주민등록번호를 포함하고 있는 텍스트가 있다. 이 텍스트에 포함된 모든 주민등록번호의 뒷자리를 '*'로 변경해보자.
먼저 정규표현식을 모르는 상태라면, 아래와 같은 코드를 작성해야한다.
정규표현식을 사용하지 않은 코드
data = """
park 950101-1234567
lee 890212-3456789
"""
result = []
# 1. data를 Enter 단위로 나누기 위한 코드
for line in data.split("\n"):
word_result = []
# 2. (ex) park 950101-1234567 을 park과 950101-1234567로 나누기 위한 코드
for word in line.split(" "):
# 3. 주민등록번호인지 확인하는 조건
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 = """
park 950101-1234567
lee 890212-3456789
"""
pat = re.compile("(\d{6})[-]\d{7}")
print(pat.sub("\g<1>-*******", data))
위와 같이 정규표현식을 이용하면 코드가 간결해지며 쉽고 빠르게 구현할 수 있다. 이후 포스팅에서 더 자세히 정리 및 설명할 예정이기 때문에 정규표현식의 예제코드를 너무 이해하려 하지 말자. 정규표현식을 사용하면 훨씬 좋다는 것을 직관적으로 보면 된다!
출처 : https://wikidocs.net/1642
https://devkingdom.tistory.com/131
Author And Source
이 문제에 관하여(정규표현식을 왜 사용할까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimdukbae/정규표현식을-왜-사용할까저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)