替换字符串中的未知值

时间:2013-02-21 15:30:47

标签: python python-3.x

我正在运行一个将大量信息转储到目录中文件的进程。我稍后运行相同的过程并在目录上执行diff以查看已更改的内容。由于内存地址,我得到了一堆错误的更改。

例如:

  1. 运行1给出

    0xb7390dd0
    
  2. 运行2给出

    0xb73909c8
    
  3. 我希望能够忽略内存地址不同的事实?实现这一目标的最佳方法是什么?

    我无法使用.replace()因为我事先不知道地址是什么。

1 个答案:

答案 0 :(得分:1)

您可以创建正则表达式以匹配值的模式并替换匹配的值

>>> pattern = r'0x\w{8}'
>>> matcher = re.compile(pattern)
>>> matcher.match('0xb73909c8: has the error')
<_sre.SRE_Match object at 0x01E25288>
>>> matcher.match('0xb73909c8: has the error').group()
'0xb73909c8'

然后你可以做

>>> '0xb73909c8: has the error'.replace(matcher.match('0xb73909c8: has the error').group(), 'Address')
'Address: has the error'