2011-03-16 54 views
0

如何將字符「 - 」添加到「ABC-D1234」等字符串中,因此它變成了「ABC-D-1234」? 另外,如何在第2個數字之後添加一個字符,即從'ABC-D1234'到'ABC-D12-34'非常感謝。如何在Python中進行搜索和替換?

+0

對不起,混亂,夥計們。 – DGT 2011-03-16 22:51:07

+0

下次首次閱讀文檔 – 2011-03-16 22:54:50

回答

3

它取決於您用來決定插入額外字符的位置的規則。第一個連字符後

s = s[:5] + '-' + s[5:] 

如果你想它,然後一個或多個字符:

如果你想它的第5和第6個字符之間,你可以試試這個

i = s.index('-') + 2 
s = s[:i] + '-' + s[i:] 

如果你想它只是第一個數字之前:

import re 
i = re.search('\d', s).start() 
s = s[:i] + '-' + s[i:] 

我可以添加一個字符前2號之後,也就是從 'ABC-D1234' 到 'ABC-D12-34'

肯定的:

i = re.search('(?<=\d\d)', s).start() 
s = s[:i] + '-' + s[i:] 

或:

s = re.sub('(?<=\d\d)', '-', s, 1) 

或:

s = re.sub('(\d\d)', r'\1-', s, 1) 
+0

非常感謝,男士。 – DGT 2011-03-16 22:52:06

0

你可以使用切片:

s = 'ABC-D1234' 
s = s[0:5] + '-' + s[5:] 
0

只是爲了這個字符串?

>>> 'ABC-D1234'.replace('D1', 'D-1') 
'ABC-D-1234' 
0

如果你專門找字母D和下一個字符1(其他的答案照顧一般情況下),你可以用D-1替換爲:

s = 'ABC-D1234'.replace('D1', 'D-1')