首页 > 解决方案 > 使用正则表达式删除动态时间和名称组合

问题描述

我没有成功尝试使用正则表达式从我正在处理的在线对话中删除时间戳和名称。

我试图删除的模式如下所示:[08:03:16] Name:

它随机分布在整个对话实例中。

模式的Name部分可以是小写或大写,并且可以包含多个名称,例如Daveadam JonsWei-Xing

我正在使用以下正则表达式:

[A-Z]([a-z]+|\.)(?:\s+[A-Z]([a-z]+|\.))*(?:\s+[a-z][a-z\-]+){0,2}\s+[A-Z]([a-z]+|\.)

Find names with Regular Expression开始,但这只会删除上面提供的时间戳示例之外的名称(并且仅适用于时间戳中的某些名称)。

我一直在寻找一段时间来寻找可能对我有帮助的东西,但到目前为止,所有示例都没有任何效果。

标签: pythonregex

解决方案


这看起来比它必须要复杂得多 - 可能更容易匹配时间戳格式,然后匹配字符直到:找到下一个(假设名称中不能包含:s):

\[(?:\d{2}:){2}\d{2}\] [^:]+:

https://regex101.com/r/5i4HId/1


推荐阅读