5

我正在尝试匹配正则表达式中的一个组,但我不希望该组出现在最终结果中。

例如:

((kl(\.)?|at)?([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?)

运行上面的表达式at 12:25应该返回12:25

有没有办法做到这一点?

我尝试使用:

(?:((kl(\.)?|at)? )([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?)

但这没有区别。

然后我尝试了

(?<!(?:((kl(\.)?|at)? )([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?)

但这返回了一个空结果。

我在 C# 中使用表达式。

4

1 回答 1

9

非捕获组(未在匹配组中找到)表示为(?:)。所以,

(?:(?:kl(?:\.)?|at)?([0-1][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?)

但是您的正则表达式似乎从一开始就结构错误。你没有记录时间。

于 2012-04-17T10:30:43.620 回答