2013-08-28 32 views
1

我有字符内容不可预知的字符串,但我知道每个字符串只包含一个字符'*'。在Python中替换特定字符的优雅方式

如何用一些非硬编码的字符串替换'*'后面的两个字符。非硬编码字符串实际上是计算校验和转换成字符串:

checksum_str = str(hex(csum).lstrip('0x')) 

回答

1

你想要的东西,如:

star_pos = my_string.find('*') 
my_string = my_string[:star_pos] + '*' + checksum_str + my_string[star_pos + 3:] 
+0

确切说!干杯! – Nikson

1

您可以用正则表达式做到这一点:

import re 
my_string = re.sub(r'(?<=\*)..', checksum_str, my_string, 1) 
+0

这不代替,这插入字符串 – Nikson

+0

糟糕,你是对的,我错过了。更正了我的答案。 – DzinX