본문 바로가기
python

[python] 파이썬 문자열 치환 (replace & sub & subn)

by hong0 2021. 2. 1.
반응형

string 데이터의 replace 사용법을 정리한다.

 

아래와 같은 형태의 예제 string으로 확인해본다.

 

첫번재는 replace를 이용하여 "를 간단하게 제거해본다. 따옴표의 경우 \(역슬래쉬)를 붙여주어야 하며 이를 공백("")으로 변환하는 것이다.

one = str.replace("\"", "")

첫번째 치환 결과는 아래와 같다.

변환할 Json String
{"parent": ["father", "mother"], "child": ["son", "daughter"]}

변환결과
{parent: [father, mother], child: [son, daughter]}

 

두번째는 여러개의 치환이 필요한 경우 for loop를 이용하여 변경한다.

token을 아래와 같이 {"[]} 을 공백으로 치환한다. for loop로 replace를 반복해준다.

    token = "{\"[]}"
    for removeChar in token:
        two = two.replace(removeChar, "")

두번째 치환 결과는 아래와 같이 {"[]}가 제거된 것을 볼 수 있다.

변환할 Json String
{"parent": ["father", "mother"], "child": ["son", "daughter"]}

변환결과
parent: father, mother, child: son, daughter

세번째는 re 모듈의 sub를 이용하여 변경한다. import re를 해주고 첫번째와 동일하게 따옴표를 공백으로 변환해 본다.

import re
    
three = re.sub("\"", "", three)

세번째 치환 결과는 첫번째와 동일한 것을 볼 수 있다.

변환할 Json String
{"parent": ["father", "mother"], "child": ["son", "daughter"]}

변환결과
{parent: [father, mother], child: [son, daughter]}

 

마지막으로 subn을 이용하여 변경하는 방법이다. 해당 문자열 내에서 변경하고자 하는 문자열로 치환 할 수 있다. 역시 import re가 필요하며 ":로 변경한다.

import re

four = re.subn("\":", "-", four)

마지막 결과는 아래과 같이 ": 가 로 변경된 것을 확인 할 수 있다.

변환할 Json String
{"parent": ["father", "mother"], "child": ["son", "daughter"]}

변환결과
{"parent- ["father", "mother"], "child- ["son", "daughter"]}

 

전체 코드와 결과는 아래와 같다.

import re

def replaceTest():
    str = "{\"parent\": [\"father\", \"mother\"], \"child\": [\"son\", \"daughter\"]}"
    print("ex string. " + str)

    one = str.replace("\"", "")
    print("1. " + one)

    two = str
    token = "{\"[]}"
    for removeChar in token:
        two = two.replace(removeChar, "")
    print("2. " + two)

    three = str
    three = re.sub("\"", "", three)
    print("3. " + three)

    four = str
    four = re.subn("\":", "-", four)
    print("4. " + four[0])

replaceTest()
ex string. {"parent": ["father", "mother"], "child": ["son", "daughter"]}
1. {parent: [father, mother], child: [son, daughter]}
2. parent: father, mother, child: son, daughter
3. {parent: [father, mother], child: [son, daughter]}
4. {"parent- ["father", "mother"], "child- ["son", "daughter"]}
반응형

댓글