【发布时间】:2023-03-10 13:57:01
【问题描述】:
使用正则表达式,我想匹配以下字符串:
January 25
Jan 25
我正在分别捕获月份和日期部分,但如果有完整的月份名称,我只想返回月份名称的前 3 个字符,所以我使用非捕获组 (?:) 来表示字符“uary”:
(?<M>(Jan(?:uary)?)) (?<D>\d\d)
不幸的是,M 组总是返回完整的月份名称;即它也捕获非捕获组。
我已经打开了 ExplicitCapture 标志。我已经使用过 RegExBuilder 和 Rad Software 的正则表达式设计器来确保它不是因为该工具。
【问题讨论】:
-
哪种语言?正则表达式有几种不同的风格,不同的宿主语言使用不同的风格。
-
这是 .NET Fx。 (如果重要,则为 4.0)。