[Python] 문자열에서 특정 문자 제거하는 방법

Hye·2023년 2월 22일

1️⃣ .replace()

str = "Hello, world, python"
result = str.replace(',', '')
result = "Hello world python"
  • 문자열.replace(바뀔문자,바꿀문자)으로 사용
  • .replace('A','B')이면 문자열의 A를 모두 B로 변경
  • 바꿀 문자를 ''로 해서 문자열에서 특정 문자 모두 제거 가능

2️⃣ re.sub()

import re

str = "Hello, world, python"
result = re.sub(',', '', str)
result = "Hello world python"
  • re.sub('바뀔문자', '바꿀문자', 대상 문자열)으로 사용
    • import re 해야 함

메타 문자

  • 특수한 기능을 하는 문자로 re 모듈의 메타 문자는 총 12개
    • $ () * + . ? [ \ ^ { \ } ]
  • 메타 문자 앞에 백슬래시 \를 붙여주어야 그 문자 자체로 인식됨

정규식 패턴 표현

패턴설명예제
^이 패턴으로 시작해야 함^abc : abc로 시작해야 함 (abcd, abc12 등)
$이 패턴으로 종료되어야 함xyz$ : xyz로 종료되어야 함 (123xyz, strxyz 등)
[문자들]문자들 중에 하나이어야 함. 가능한 문자들의 집합을 정의함.[Pp]ython : "Python" 혹은 "python", [가-힣] : 모든 한글 문자, [ㄱ-ㅎㅏ-ㅣ] : ㄱ~ㅎ, ㅏ~ㅣ, [a-zA-Z0-9] : 모든 알파벳 문자 및 숫자
[^문자들][문자들]의 반대로 피해야할 문자들의 집합을 정의함.[^aeiou] : 소문자 모음이 아닌 문자들, [^1-3a-z]=1~3,a~z제외한 나머지
|두 패턴 중 하나이어야 함 (OR 기능)a | b : a 또는 b 이어야 함
?앞 패턴이 없거나 하나이어야 함 (Optional 패턴을 정의할 때 사용)\d? : 숫자가 하나 있거나 없어야 함
+앞 패턴이 하나 이상이어야 함\d+ : 숫자가 하나 이상이어야 함
*앞 패턴이 0개 이상이어야 함\d* : 숫자가 없거나 하나 이상이어야 함
패턴{n}앞 패턴이 n번 반복해서 나타나는 경우\d{3} : 숫자가 3개 있어야 함
패턴{n, m}앞 패턴이 최소 n번, 최대 m 번 반복해서 나타나는 경우 (n 또는 m 은 생략 가능)\d{3,5} : 숫자가 3개, 4개 혹은 5개 있어야 함
\d숫자 0 ~ 9\d\d\d : 0 ~ 9 범위의 숫자가 3개를 의미 (123, 000 등)
\w문자를 의미\w\w\w : 문자가 3개를 의미 (xyz, ABC 등)
\s화이트 스페이스를 의미하는데, [\t\n\r\f] 와 동일\s\s : 화이트 스페이스 문자 2개 의미 (\r\n, \t\t 등)
.뉴라인(\n) 을 제외한 모든 문자를 의미.{3} : 문자 3개 (F15, 0x0 등)
profile
공부중 📚

0개의 댓글