Python 如何删除行中MAC地址的分隔符

Python 如何删除行中MAC地址的分隔符,python,Python,嗨,我有一个脚本,正在逐行处理一个txt文件,我遇到的问题是,输入不太一致。我已经“清理”了其中的大部分,因此它在以下形式中是一致的: 172.31.8.72|web302-eth0|172.31.8.72|52|54|00|58|74|E9|web302 然而,尽管我已经实现了一致性,但我想从MAC地址中删除“|”(管道)。所以它看起来像: 172.31.8.72|web302-eth0|172.31.8.72|5254005874E9|web302 我需要一些帮助:) 这是我的脚本中正在

嗨,我有一个脚本,正在逐行处理一个txt文件,我遇到的问题是,输入不太一致。我已经“清理”了其中的大部分,因此它在以下形式中是一致的:

172.31.8.72|web302-eth0|172.31.8.72|52|54|00|58|74|E9|web302
然而,尽管我已经实现了一致性,但我想从MAC地址中删除“|”(管道)。所以它看起来像:

172.31.8.72|web302-eth0|172.31.8.72|5254005874E9|web302
我需要一些帮助:)

这是我的脚本中正在进行此处理的函数(到目前为止),我知道我快完成了
非常感谢您的帮助!:)


提前谢谢

您已经在使用正则表达式,所以请使用更多

re.sub('\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|', '|\\1\\2\\3\\4\\5\\6|', record)

模式很长,因为您需要所有捕获的结果,并且重复捕获会被覆盖。

您已经在使用正则表达式,所以请使用更多

re.sub('\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|([A-F0-9]{2})\\|', '|\\1\\2\\3\\4\\5\\6|', record)

模式很长,因为您需要所有捕获的结果,并且重复捕获会被覆盖。

文件的格式是否相同?我这样问是因为你可能可以用更有条理的方式来做。regexp并不是解决所有问题的最佳工具。就像笑话中说的:如果你有一个问题,并且想用regexps-congadultion解决它,你现在有两个问题。您似乎可以使用csv和delimeter来处理文件。Python的stdlib使用了
csv
模块。文件的格式是否相同?我这样问是因为你可能可以用更有条理的方式来做。regexp并不是解决所有问题的最佳工具。就像笑话中说的:如果你有一个问题,并且想用regexps-congadultion解决它,你现在有两个问题。您似乎可以使用csv和delimeter来处理文件。Python的stdlib有
csv
模块来使用它。谢谢!它工作得很好!我是Python新手,对我的正则表达式有点生疏,但您的解决方案非常简单!希望这对其他人也有帮助!:)非常感谢。它工作得很好!我是Python新手,对我的正则表达式有点生疏,但您的解决方案非常简单!希望这对其他人也有帮助!:)