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
인수가 문자열이면string
의pattern
이repl
문자열로 대체됩니다. 함수가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