[python] 정규식을 이용하여 패턴 대체하기

Hello World·2024년 10월 3일

PythonNotebook

목록 보기
10/13
post-thumbnail
  • 정규식을 사용하면 문자열에서 특정한 문자열을 찾아 다른 문자열로 대체할 수 있다.
  • 파이썬에서는 re 모듈의 sub() 함수를 사용하여 문자열 대체를 수행한다.
  • sub() 함수의 매개변수는 다음과 같다.

  • pattern : 찾고자 하는 문자열 패턴을 나타내는 정규식
  • repl : 대체할 문자열
  • string : 검색 대상이 되는 문자열
  • count : 대체를 수행할 최대 횟수
  • flags : 정규식의 동작 방식을 제어하는 플래그

문자열에서 숫자 모두 제거하기

text = 'abc123def456'
result = re.sub(r'\d', '', text)
print(result)

# 출력
# abcdef

문자열에서 이메일 주소를 모두 마스킹 처리하기

text = 'My email is john@example.com'
result = re.sub(r'\w+@\w+\.\w+', '****', text)
print(result)

# 출력
# My email is ****

날짜 형식 변경하기

  • 괄호() 사이에 있는 패턴은 하나의 그룹으로 취급된다.
  • r'\3-\1-\2': 이 패턴에서 \3은 세 번째 그룹을 나타내고, \1, \2는 각각 첫 번째 패턴과 두 번째 패턴을 나타낸다.
text = '03/17/2024'
new_text = re.sub(r'(\d{2})/(\d{2})/(\d{4})', r'\3-\1-\2', text)
print(new_text)

# 출력
# 2024-03-17

입력을 받아 HTML 태그만 제거하기

html = input("HTML 문장을 입력하세요: ")
pattern = r'<[^>]+>'  # <와 > 사이에 있는 모든 문자열 찾기
result = re.sub(pattern, '', html)
print(result)

문자열에서 숫자와 알파벳을 제외한 모든 문자를 제거하기

text = 'This is a string !@#$%$^*()_+ characters'
# pattern = r'\W|_'
pattern = r'[^a-zA-Z0-9]|_'
result = re.sub(pattern, '', text)
print(result)

# 출력
# Thisisastringcharacters

0개의 댓글