匹配但不包括使用正则表达式的结果

时间:2012-04-17 10:26:00

标签: c# regex

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

例如:

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

1 个答案:

答案 0 :(得分:9)

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

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

但是你的regexp似乎从一开始就是错误的结构。你没有抓住会议记录。