如何搜索&在Python中替换?

时间:2011-03-16 22:37:40

标签: python

如何在“ABC-D1234”等字符串中添加字符“ - ”,使其成为'ABC-D-1234'? 另外,如何在前两个数字之后添加一个字符,即从'ABC-D1234'到'ABC-D12-34'非常感谢。

4 个答案:

答案 0 :(得分:3)

这取决于您使用的规则来决定插入额外字符的位置。

如果你想要它在第5和第6个字符之间,你可以试试这个:

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

如果你想在第一个连字符之后想要它,那么还需要一个字符:

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

如果你想要它在第一个数字之前:

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

  

我可以在前两个数字之后添加一个字符,即从'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)

答案 1 :(得分:0)

你可以使用切片:

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

答案 2 :(得分:0)

只是为了这个字符串?

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

答案 3 :(得分:0)

如果您专门寻找字母D和下一个字符1(其他答案会处理一般情况),您可以将其替换为D-1:< / p>

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