정규식 re.sub()에 대해

개발공부를해보자·2025년 1월 13일

공부 정리

목록 보기
10/34

정규식에 조금씩 익숙해져가고 있다.
문제를 풀던 중 정규식에서 실수한 부분을 정리해둔다.
char = 'a'일 때 문자열에서 a를 지우고 싶은데
re.sub()의 첫번째 인수로 char를 넣어야하는데 r"[char]"를 넣는 실수를 했다.

아래는 GPT의 도움을 받아 정리한 내용이다.

import re

# 잘못된 예 (한 글자 char 사용)
s = "bcabc"
char = "a"
result_wrong = re.sub(r"[char]", "", s)  # [char]는 c, h, a, r 중 하나를 의미
print("잘못된 결과 (한 글자):", result_wrong)  # Output: 'bc'

# 올바른 예 (한 글자 char 사용)
result_correct = re.sub(char, "", s)  # char의 값 'a'를 그대로 문자열로 처리
print("올바른 결과 (한 글자):", result_correct)  # Output: 'bcbc'

# char가 두 글자인 경우
s = "bcabacadab"
char_multiple = "ab"
result_multiple = re.sub(char_multiple, "", s)  # 'ab' 문자열만 제거
print("올바른 결과 (두 글자):", result_multiple)  # Output: 'bcacad'

# 잘못된 예 (두 글자 char를 [ab]로 정규표현식 처리한 경우)
result_wrong_multiple = re.sub(r"[ab]", "", s)  # 'a' 또는 'b'를 제거
print("잘못된 결과 (두 글자):", result_wrong_multiple)  # Output: 'ccd'

"""
요약:
1. re.sub(char, "", s)는 변수 char에 저장된 문자열 패턴을 제거합니다.
2. r"[char]"와 같이 사용하면 char 중 하나의 문자로 해석되어 c, h, a, 또는 r을 찾아 제거합니다. 
3. char = 'a'이고 'a'를 지우려면 re.sub(char, "", s)를 사용해야 합니다.
"""
profile
개발 공부하는 30대 비전공자 직장인

0개의 댓글