Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 정규식으로 특정 문자 앞뒤에 공백 추가하는 방법

문자열을 다루다 보면 파이프(|)나 콜론(:) 같은 특수 문자 주변에 공백을 넣어 가독성을 높여야 할 때가 있습니다. 이럴 때 파이썬의 re 모듈과 정규식을 활용하면 간단하게 해결할 수 있습니다.

아래 코드는 주어진 문자열에서 파이프(|) 문자 앞뒤에 공백을 자동으로 추가하는 방법을 보여줍니다.

예제 코드

import re
regex = r'\b[|:]\b'
s = "abracadabra abraca|dabara | abra cadabra abra ca dabra abra ca dabra abra"
print(re.sub(regex, ' \g<0> ', s))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

abracadabra abraca | dabara | abra cadabra abra ca dabra abra ca dabra abra

코드 설명

정규식 패턴 r'\b[|:]\b'는 두 부분으로 구성됩니다. 먼저 [|:]는 문자 클래스로, 파이프(|) 또는 콜론(:) 중 하나와 일치함을 의미합니다. 그리고 양쪽의 \b는 단어 경계(word boundary)를 나타내어, 해당 문자가 단어와 붙어 있는 경우에만 매칭되도록 합니다.

re.sub() 함수의 두 번째 인자인 ' \g<0> '는 치환 패턴입니다. 여기서 \g<0>는 매칭된 전체 문자열을 그대로 참조하며, 앞뒤로 공백을 더해 치환합니다. 따라서 원래 문자열의 위치와 내용은 유지되면서 특정 문자 주변에만 공백이 추가됩니다.

이 방식은 구분자 기호 주변에 일관된 공백을 적용해야 하는 텍스트 전처리 작업에서 특히 유용합니다. 대상 문자를 바꾸고 싶다면 문자 클래스 [|:] 안에 원하는 문자를 추가하기만 하면 됩니다.