我正在运行一个将大量信息转储到目录中文件的过程。稍后,我将运行相同的过程,并对目录进行比较以查看发生了什么变化。由于内存地址,我收到了许多错误的更改。

例如:


运行1给出

0xb7390dd0

运行2给出

0xb73909c8



我想忽略内存地址不同的事实?做到这一点的最佳方法是什么?

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

最佳答案

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

>>> 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'

关于python - 替换字符串中的未知值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15006053/

10-12 16:58