使用正则表达式捕获两个信息

Capturing two information using regular expressions

*COMPLETED:     25 Apr 2020 [09:08:21]                            |TIME:        00:13:49  *

我想获取如下信息:
日期结束:2020 年 4 月 25 日 [09:08:21]
时长:00:13:49

我尝试了下面的正则表达式,但无法正确获取正确的信息。

(?P<DateEnd>(?<=\*COMPLETED\:).+)]\s+(?P<Duration>(?<=\|TIME\:).+)\*

试试这个:

COMPLETED: *(?<DateEnd>.+?]).*TIME: *(?<Duration>\S+)

live demo

您不需要转义冒号 : 也不需要环顾四周。

我不确定你的正则表达式是否需要命名组中的 P,但是 none 我知道需要 P 所以我删除了它们并按照演示有效。