Python - 문자열에서 특정 문자 바꾸기

문자열에서 특정 문자를 다른 문자로 변경하는 방법을 소개합니다.

1. replace()로 특정 문자열 변경

replace(old_value, new_value)는 문자열에서 old_value를 찾아 new_value로 변경합니다.

아래 예제에서는 ,!로 변환합니다.

str = "Hello, World, Python"

new_str = str.replace(',', '!')
print(new_str)

Output:

Hello! World! Python

문자 1개 뿐만 아니라, 아래와 같이 문자열을 변환할 수도 있습니다.

str = "Hello, World, Python"

new_str = str.replace("Python", "Java!")
print(new_str)

Output:

Hello, World, Java!

1.1 문자열 최대 변환 횟수 설정

위의 예제에서는 모든 문자를 찾아 모두 변환하였습니다. 하지만, 문자열의 최대 변환 횟수를 설정하여, 원하는 개수만큼만 변환할 수 있습니다.

replace(old_value, new_value, count)는 정수 타입의 인자 count를 추가로 받으며, 이 개수만큼만 문자열을 변환합니다.

예를 들어, 다음 예제에서 replace()count = 1을 인자로 전달하면 문자열 안에 old_value가 여러개 있어도 가장 앞쪽에 있는 문자 1개만 new_value로 변환합니다.

str = "Hello, World, Python"

new_str = str.replace(',', '!', 1)
print(new_str)

Output:

Hello! World, Python

2. 정규표현식으로 특정 문자열 변경

정규표현식을 이용하여 특정 문자열을 찾고 다른 문자열로 변환할 수 있습니다.

re.sub(pattern, replace, str) 함수는 인자로 전달된 문자열 str에서 pattern을 찾고, 찾은 문자열을 replace 문자열로 변환합니다.

아래 예제와 같이 re.sub()함수로 패턴을 찾고, 찾아진 문자열을 원하는 문자열로 변경할 수 있습니다.

import re

str = "Hello, World, Python2, Python3, Python4"
pattern = "Python[0-9]"
replace = "Java"

new_str = re.sub(pattern, replace, str)
print(new_str)

Output:

Hello, World, Java, Java, Java

2.1 문자열 최대 변환 횟수 설정

위의 예제에서는 모든 문자를 찾아 모두 변환하였습니다. 하지만, 문자열의 최대 변환 횟수를 설정하여, 원하는 개수만큼만 변환할 수 있습니다.

re.sub(pattern, replace, str, count)함수는 인자로 count를 전달받으며, 이 개수만큼 문자열을 변환합니다.

아래 예제에서는 최대 변환 횟수를 다르게 설정하여 어떻게 변환되는지 볼 수 있습니다.

import re

str = "Hello, World, Python2, Python3, Python4"
pattern = "Python[0-9]"
replace = "Java"

new_str = re.sub(pattern, replace, str, 1)
print(new_str)

new_str = re.sub(pattern, replace, str, 2)
print(new_str)

Output:

Hello, World, Java, Python3, Python4
Hello, World, Java, Java, Python4
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha