Python의 정규식 바꾸기 방법

Muhammad Waiz Khan 2022년1월22일
Python의 정규식 바꾸기 방법

이 튜토리얼에서는re.sub()메소드의 사용과 기능을 살펴보고 예제 코드를 살펴볼 것입니다. Python의re모듈은 유니 코드 및 8 비트 문자열 모두에 대해 정규식을 사용하여 다양한 기능을 제공합니다. 기능에는 문자열 교체, 분할 및 일치 등이 포함됩니다.

Python에서re.sub()메서드를 사용하여 정규식 바꾸기

re.sub(pattern, repl, string, count=0)메소드는string을 입력으로 취하고pattern의 가장 왼쪽에있는 항목을repl로 바꿉니다. string인수에pattern이 없으면string이 변경없이 리턴됩니다.

pattern인수는 정규식 형식이어야합니다. repl은 문자열 또는 함수일 수 있습니다. repl인수가 문자열이면stringpatternrepl문자열로 대체됩니다. 함수가repl인수로 전달되면pattern이 발견 될 때마다 함수가 호출됩니다. 이 함수는matchObject를 입력으로 받아 대체 문자열을 반환합니다. matchObject는 일치가 발견되면True와 같은 값을 가지며 그렇지 않으면None과 같은 값을 갖습니다.

선택적count인수는string에서 대체하려는pattern의 최대 발생을 나타냅니다.

아래 예제 코드는re.sub()메소드를 사용하여 정규 표현식을 사용하여 문자열에서 일부 패턴을 바꾸는 방법을 보여줍니다.

import re

string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)

출력:

Hello  How are you   Where have you been  

위 코드 예제는 공백이있는pattern인수에 지정된 문자를 제거합니다. 이는 위 코드에서repl인수입니다.

함수를repl인수로 사용하여 아래 예제 코드와 같이repl인수가 발견 될 때마다" "를 반환하여 동일한 작업을 수행 할 수도 있습니다.

import re


def repl_func(match):
    if match == True:
        return " "


string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)

출력:

Hello How are you Where have you been

관련 문장 - Python Regex