嗨,我有一个日志文件,该文件的内容低于:什么是特殊文本的最佳Python正则表达式?
[ 06-15 14:07:48.377 15012:15012 D/ViewRootImpl ]
ViewPostImeInputStage processKey 0
[ 06-15 14:07:48.397 3539: 4649 D/AudioService ]
active stream is 0x8
[ 06-15 14:07:48.407 4277: 4293 D/vol.VolumeDialogControl.VC ]
isSafeVolumeDialogShowing : false
我想提取从日志文件。该预期的格式一些信息如下:
[('06-15 14:07:48.377', '15012', 'D', 'ViewRootImpl', 'ViewPostImeInputStage processKey 0'),
('06-15 14:07:48.397', '3539', '4649', 'D', 'AudioService', 'active stream is 0x8'),
('06-15 14:07:48.407', '4277', '4293', 'D', 'vol.VolumeDialogControl.VC', 'isSafeVolumeDialogShowing : false')]
问题:提取预期格式信息的最佳python正则表达式是什么?非常感谢!
upate:我曾尝试下面的代码
import re
regex = r"(\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}.\d{3})\s(\d+).*(\w{1})/(.*)\](.*)"
data = [g.groups() for g in re.finditer(regex, log, re.M | re.I)]
我已经得到的结果是
data=[('06-15 14:07:48.377', '15012', 'D', 'ViewRootImpl', '\r'), (
'06-15 14:07:48.397', '3539', 'D', 'AudioService', '\r'), ('06-15 14:07:48.407',
'4277', 'D', 'vol.VolumeDialogControl.VC', '\r')]
我不能得到最后一个元素。
请提供您已经尝试代码。 – dhdavvie
请先显示您的尝试。另外你需要的是格式化字符串,因为你正在使用整个字符串。 – wolfsgang
最好的正则表达式是你自己编写的正则表达式,这样你就可以理解它在稍后需要调整。 –