Python 3.x에서 string.replace ()를 사용하는 방법


280

python 3.x에서는 string.replace ()가 더 이상 사용되지 않습니다. 이 작업을 수행하는 새로운 방법은 무엇입니까?


11
FWIW, 나는 같은 혼란을 겪었다. Google "python string replace"를 사용하면 Python 2.7에서 더 이상 사용되지 않는 문자열 함수로 이동했습니다. IMHO, 해당 섹션은 "string.xxx ()"대 "xxx (string)"을 설명하는 큰 굵은 체 상자를 사용하고 사람들에게 사용되지 않는 문자열 메소드 (예 : docs.python.org/library/stdtypes.html)
ToolmakerSteve

8
파이썬 문서는 이상적인 모국어로 선전된다는 점을 고려할 때 절대적인 혼란입니다. 종종 물건이 있지만, 체계적인 방식으로 인해 검색 엔진이나 자체 사이트에서 색인을 생성하지 못하는 경우가 종종 있습니다. ToolMakerSteve의 링크를 보면 핵심 문자열 기능이 표준 유형에 집중되어 있습니다. 문자열 함수를 검색 할 때 나타나지 않습니다.
Andrew S

10
명확하게하기 위해 : string.replace ()는 실제로 파이썬 3에서 더 이상 사용되지 않습니다.
sboggs11


1
때때로 사람들은 [문자열 변수] .replace를 의미 할 때 "str.replace"를 씁니다. 'str'도 관련 클래스의 이름이므로 혼동 될 수 있습니다.
TextGeek

답변:


315

2.x에서와 같이를 사용하십시오 str.replace().

예:

>>> 'Hello world'.replace('world', 'Guido')
'Hello Guido'

4
"re"(정규 표현식) 모듈에는 더 이상 사용되지 않는 문자열 함수에 대한 대안이 있습니다. 이 경우, re.sub().
ToolmakerSteve

8
@ToolmakerSteve : string기능이 더 이상 사용되지 않습니다. str방법은 없습니다.
Ignacio Vazquez-Abrams

6
FWIW, 내가 구글 때마다, 나는 더 이상 사용되지 않는 오래된 문자열 함수로 끝나는 것 같습니다. 다음은 (더 이상 사용되지 않는) 문자열 메소드에 대한 링크입니다. docs.python.org/3.3/library/stdtypes.html#string-methods ~ or_for_2 ~ docs.python.org/2/library/stdtypes.html#string-methods
ToolmakerSteve

36
파이썬 문서를 탐색하기 위해 스택 오버플로를해야한다면 분명히 문제가 있습니다. 읽고 있다면 파이썬 팀. 그것을 밖으로 정렬!
Andrew S

2
클래스가 아닌 객체에서 메소드를 호출하십시오. 'foo'.replace(...)
이그나시오 바스케스-아 브람스

108

replace()<class 'str'>python3 의 방법입니다 .

>>> 'hello, world'.replace(',', ':')
'hello: world'

13

파이썬 3의 replace () 메소드는 다음과 같이 간단하게 사용됩니다.

a = "This is the island of istanbul"
print (a.replace("is" , "was" , 3))

#3 is the maximum replacement that can be done in the string#

>>> Thwas was the wasland of istanbul

# Last substring 'is' in istanbul is not replaced by was because maximum of 3 has already been reached

2
또한 3을 넣을 수 없으며 모든 우연의 일치를 바꿀 것입니다.
Ender Look

4

당신이 사용할 수있는 str.replace ()를 A와 체인 str.replace () . 같은 문자열이 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'있고 모든 '#',':',';','/'부호 를로 바꾸고 싶다고 생각하십시오 '-'. 이 방법으로 (일반적인 방법),

>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'
>>> str = str.replace('#', '-')
>>> str = str.replace(':', '-')
>>> str = str.replace(';', '-')
>>> str = str.replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'

또는이 방법 (chain of str.replace () )

>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'.replace('#', '-').replace(':', '-').replace(';', '-').replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'

3

이 시도:

mystring = "This Is A String"
print(mystring.replace("String","Text"))

1

참고로, 문자열 내에서 임의의 위치 고정 단어에 일부 문자를 추가 할 때 (예 : 접미사 -ly 를 추가하여 부사 형용사를 변경하는 경우 ) 가독성을 위해 줄 끝에 접미사를 넣을 수 있습니다. 이렇게하려면 split()inside를 사용하십시오 replace().

s="The dog is large small"
ss=s.replace(s.split()[3],s.split()[3]+'ly')
ss
'The dog is largely small'

0
ss = s.replace(s.split()[1], +s.split()[1] + 'gy')
# should have no plus after the comma --i.e.,
ss = s.replace(s.split()[1], s.split()[1] + 'gy')

6
이 코드는 질문에 대답 할 수 있지만, 질문에 대한 이유 및 / 또는 방법에 대한 추가 컨텍스트를 제공하면 장기적인 가치가 크게 향상됩니다. 제발 편집 약간의 설명을 추가 할 답변을.
CodeMouse92

정답은 앞에서 언급 한 string.replace는 python3에서 작동합니다.
jorfus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.