使用正则表达式匹配但不包含在结果中

本文关键字:包含 结果 正则表达式 | 更新日期: 2023-09-27 18:31:18

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

例如:

((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# 中的表达式。

使用正则表达式匹配但不包含在结果中

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

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

但是您的正则表达式似乎从一开始就是错误的。你没有捕捉到分钟。