2013-03-03 56 views
0

我想擴大「博士」變成「醫生」或「驅動器」以清除混淆。Python:替換一個簡單的字符串?

string = 'Dr. Seuss Dr.' 
if string[0:3] == "Dr.": 
    new_string = 'Doctor Seuss Dr.' 
if string[:3] == "Dr.": 
    another_string = 'Dr. Seuss Drive' 

有沒有更好的方法來擴大「博士」?如果字符串是'我喜歡蘇斯博士',我無法處理案件!

+2

什麼是你的問題? – squiguy 2013-03-03 07:16:14

+0

這是玩具程序/鍛鍊還是現實世界的使用? – NPE 2013-03-03 07:42:20

回答

4

像這樣?

mystring = 'Dr. Seuss Dr.' 
if 'Dr.' in mystring: 
    mystring = mystring.replace('Dr.', 'Doctor', 1).replace('Dr.', 'Drive') 

第一隻更換替換Dr.一次(注意添加額外的參數)。

感謝shantanoo指出有一個模塊string等變量名應該避免這樣的詞。我已將變量更改爲mystring

+1

+1很容易忘記'.replace'需要一個計數參數 – 2013-03-03 07:34:14

+0

這真是太棒了! – user1899415 2013-03-03 07:34:56

+0

@ user1899415很高興我可以幫助:) – TerryA 2013-03-03 07:35:21

1

我想你想要將Dr.轉換成Doctor,如果它在字符串的開頭。否則,您需要將Dr.轉換爲Driver

您可以使用正則表達式來實現這一目標:

import re 
string = 'Dr. Seuss Dr.' 
string = re.sub(re.compile('^Dr.'), 'Doctor', string) 
string = re.sub(re.compile('Dr.$'), 'Driver', string) 
#now string contains 'Dr. Seuss Drive'