본문 바로가기
2023_국민대/텍스트 데이터 분석

[텍데분] Regular Expression 1

by yejineee 2023. 4. 12.

Regular Expression 정규표현식

특정한 문자패턴을 정의하는 방식

 

특정한 규칙을 가진 문자열 탐색

ex. 이메일 주소만 추출, 전화번호만 추출, ip주소만 추출

 

정규표현식 활용 방법

  • 데이터 수집하기
    특정한 패턴을 갖는 데이터만 수집
  • 데이터 전처리하기
    특정 패턴을 갖고 있는 데이터 제거

정규표현식 활용 예시

파이썬에서 정규표현식을 사용하기 위해서는 re라는 모듈 불러와서 사용

# 휴대폰 번호 가운데 자리를 *로 변경
data = \
"""kim 010-1234-5678
park 010-8765-4321"""

# 정규표현식 미사용
result = []
for line in data.split('\n'):
    tmp_result = []
    for word in line.split(' '):
        if len(word) == 13 and word[:3].isdigit() and word[4:8].isdigit() and word[9:].isdigit(): # 숫자인지 검사
            word = word[:4] + "****" + word[8:]
        tmp_result.append(word)
    result.append(" ".join(tmp_result))

# 정규표현식 사용
import re

pattern = re.compile("(\d{3})[-](\d{4})[-](\d{4})")
print(pattern.sub("\g<1>-****-\g<3>", data))

⇒ 코드가 훨씬 간단해 짐

 

정규표현식은 python에서만 사용되는 것이 아닌 여러 프로그래밍 언어에서도 활용