2012-04-17 151 views
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#中使用表达式。

+0

'(?:...)' - 非捕获组 – kirilloid 2012-04-17 10:30:11

+0

返回整个结果。例如。 '在12:25''类似于'(?:...)' – simonbs 2012-04-17 10:31:30

回答

9

未捕获组(未在匹配组中找到)标记为(?:)。所以,

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

但是你正则表达式似乎从一开始就是错误的结构。你不记录会议纪要。

相关问题