下面我有一段代码应该用另一个字符串替换一个字符串,但似乎没有这样做。我不是 python 或正则表达式专家,谁能告诉我为什么这可能会出错。
def ReplaceCRC( file_path ):
file = open(file_path,'r+');
file_str = file.read()
if( file_str <> '' ):
crc_list = re.findall(r'_CalcCRC[(]\s*"\w+"\s*[)]', file_str);
strs_to_crc = []
new_crc_list = []
if( crc_list ):
for crc in crc_list:
quote_to_crc = re.search(r'"\w+"', crc);
str_to_crc = re.search(r'\w+', quote_to_crc.group() ).group();
final = hex(CalcCRC( str_to_crc ))[:2]
value = '%08X' % CalcCRC( str_to_crc )
final = final + value.upper()
final_crc = Insert( crc, ', ' + final + ' ', -1)
new_crc_list.append( final_crc )
if( new_crc_list <> [] ):
for i in range(len(crc_list)):
print crc_list[i]
print new_crc_list[i]
term = re.compile( crc_list[i] );
print term.sub( new_crc_list[i], file_str );
这是它正在操作的文件:
printf( "0x%08X\n", _CalcCRC("THIS_IS_A_CRC") );
printf( "0x%08X\n", _CalcCRC("PATIENT_ZERO") );
这是输出
_CalcCRC("THIS_IS_A_CRC")
_CalcCRC("THIS_IS_A_CRC", 0x97DFEAC9 )
printf( "0x%08X\n", _CalcCRC("THIS_IS_A_CRC") );
printf( "0x%08X\n", _CalcCRC("PATIENT_ZERO") );
_CalcCRC("PATIENT_ZERO")
_CalcCRC("PATIENT_ZERO", 0x0D691C21 )
printf( "0x%08X\n", _CalcCRC("THIS_IS_A_CRC") );
printf( "0x%08X\n", _CalcCRC("PATIENT_ZERO") );
它应该做的是找到 CRC 字符串,计算值,然后将一个字符串放在原始字符串中的位置。我一直在尝试一堆东西,但似乎没有任何效果。