2013-08-28 7 views
1

У меня есть строки, которые непредсказуемы с точки зрения содержания символов, но я знаю, что каждая строка содержит ровно один символ '*'.Элегантный способ замены определенных символов в Python

Как заменить два символа после «*» на некоторую строку без жесткого кодирования. Non жестко закодированы строка фактически вычисляется контрольная сумма и преобразуется в строку:

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

Смежные вопросы