使用正则表达式匹配但不包含在结果中
本文关键字:包含 结果 正则表达式 | 更新日期: 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])?)
但是您的正则表达式似乎从一开始就是错误的。你没有捕捉到分钟。