将正则表达式与特定结束短语匹配,但从捕获中排除

本文关键字:排除 正则表达式 短语 结束 | 更新日期: 2023-09-27 18:35:42

我有一个文件,我想从中获取特定日期。文件中有很多日期,但我正在寻找的日期看起来像这样:

��

07 十月 2013

私人和机密

所以我试图匹配一个后跟Private & Confidential的日期,但我没有寻找捕获Private & Confidential。所以我需要实际捕获07 October 2013.我使用的正则表达式如下:

('d{2})('/|-|'s*)?(January|February|March|April|May|June|July|August|September|October|November|December)('/|-|'s*)?('d{4})'s*(?:Private & Confidential)

我一直在使用?:来匹配但不捕获Private & Confidential但我不确定这是否是正确的用法。有人有什么想法吗?

将正则表达式与特定结束短语匹配,但从捕获中排除

使用前瞻:

(?='s*Private & Confidential)

你应该使用前瞻(?=...),也不需要捕获分隔符。

('d{2})(?:'/|-|'s*)?(January|February|March|April|May|June|July|August|September|October|November|December)(?:'/|-|'s*)?('d{4})'s*(?=Private & Confidential)

演示