2012-04-17 38 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])?) 

但是你正則表達式似乎從一開始就是錯誤的結構。你不記錄會議紀要。

相關問題