regex-如何创建日期格式的regex而不重复上一组

regex-如何创建日期格式的regex而不重复上一组,regex,Regex,我想为用户输入的匹配日期格式创建一个正则表达式。用户将以字符串(“dd/MMM/yyyy”)的形式输入日期格式,而不是实际值 例如: 年月日=✅ 年月日=✅ 年月日=❌ (以前捕获的组不能重复) MMM/MMM/yyyy=❌ (理由同上) 我在消极前瞻方面遇到了问题。非常感谢您的帮助。我相信您可以使用正则表达式 \b(?:dd\/(?:mm|MMM)\/yyyy|(?:mm|MMM)\/dd\/yyyy|yyyy\/(?:mm|MMM)\/dd)\b 正则表达式引擎执行以下操作 \b

我想为用户输入的匹配日期格式创建一个正则表达式。用户将以字符串(“dd/MMM/yyyy”)的形式输入日期格式,而不是实际值

例如:

  • 年月日=✅
  • 年月日=✅
  • 年月日=❌ (以前捕获的组不能重复)
  • MMM/MMM/yyyy=❌ (理由同上)

我在消极前瞻方面遇到了问题。非常感谢您的帮助。

我相信您可以使用正则表达式

\b(?:dd\/(?:mm|MMM)\/yyyy|(?:mm|MMM)\/dd\/yyyy|yyyy\/(?:mm|MMM)\/dd)\b

正则表达式引擎执行以下操作

\b                      # match a word break
(?:                     # begin a non-capture group
  dd\/(?:mm|MMM)\/yyyy  # match 'dd/' followed by 'mm' or 'MMM'
                        # followed by '/yyyy'
  |                     # or
  (?:mm|MMM)\/dd\/yyyy  # match 'mm' or 'MMM' followed by '/dd'
                        # followed by '/yyyy'
  |                     # or
  yyyy\/(?:mm|MMM)\/dd  # match 'yyyy/' followed by 'mm' or 'MMM'
                        # followed by 'dd'
)
\b

是否要拒绝
“04112020”
?如果是这样,是因为月份必须始终用三个字母的缩写表示(例如,
“Jan”
“Jan”
)。@CarySwoveland我指的不是实际的日期值,而是格式本身。用户可以输入“dd/MMM/yyyy”或“MMM/dd/yyyy”并通过,但如果输入“MMM/MMM/yyyy”或“dd/dd/yyyy”,则会失败,因为他们已经分别提供了月份和日期的格式。我明白了。
“ddmmyyyy”
“mmddyyyy”
都有效吗?@CarySwoveland是都有效。您需要编辑您的问题以将信息合并到第一条评论中。你已经有两张选票要结束了,可能是因为对这一点感到困惑。问题必须是独立的,部分原因是并非所有读者都阅读所有评论。非常感谢你的评论,它非常有效。我这里是我的全部的全部的regex<代码>以下是我的全部的全部的regex<代码>以下是我的全部的全部的我的全部的我的全部的我的全部的我的全部的我的全部的我的全部的我的全部的我的全部的regex<代码>以下以下以下是我的全部的我的全部的全部的我的全部的以下以下以下以下以下是::::::::::{{1,1,2,2,2{{{{1,2,2,2,2,2}((((((((((.//////////-))))))((({{{{{{{1,1,1,1,1,2,1,1,2,2,{{{{{{{1,1,2,2,2,2,2,2,2{{{{{{{{{{{{{1,2,2,]{2}?$