回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>你好,我有一个日志文件,文件内容如下:</p>
<pre><code>[ 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
</code></pre>
<p>我想从日志中提取一些信息文件。文件预期格式如下:</p>
<pre><code>[('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')]
</code></pre>
<p><strong>问题:</strong>提取预期格式信息的最佳python正则表达式是什么?非常感谢!你知道吗</p>
<p><strong>更新:</strong>我尝试了以下代码</p>
<pre><code>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)]
</code></pre>
<p>我得到的结果是</p>
<pre><code>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')]
</code></pre>
<p>我找不到最后一个元素。你知道吗</p>