捕获不在Regex中工作的组
使用正则表达式,我想匹配以下字符串:
January 25
Jan 25
  我分别捕获月份和日期部分,但如果有完整的月份名称,只想返回月份名称的前3个字符,所以我对字符“uary”使用非捕获组(?:) : 
(?<M>(Jan(?:uary)?)) (?<D>dd)
  不幸的是, M组总是返回完整的月份名称;  即它也捕获非捕获组。 
我已打开ExplicitCapture标志。 我已经使用RegExBuilder和Rad Software的正则表达式设计器来确保它不是因为该工具。
  您的捕捉组应仅包围Jan 
(?<M>Jan)(?:uary)? (?<D>d{1,2})
  您的原始表达式大致相当于(?<M>January|Jan) (?<D>dd) 。  非捕获组并不意味着将匹配从现有捕获组中移除。  这意味着只有没有创建新的捕获组。 
尝试:
(?<M>Jan)(?:uary)? (?<D>dd)
