Python 正则表达式不匹配

Python 正则表达式不匹配,python,regex,python-3.x,pandas,Python,Regex,Python 3.x,Pandas,我正在尝试匹配以下格式的值: , ####-####-####-#### , ####-########-##### , ##-###-#-###-##-#-#### 例如:2018-03-10、2018-02-10-2019、10-20-2016 应该只捕获2018-02-10-2019年的,但它捕获了所有线路 开头的,是可选的。我基本上是想找到包含3个或更多连字符的值 以下是我正在使用的: (, )?([\/-]?)(\d+[\/-]?){4,} 这不仅捕获了我想要的值,而且还捕获了如下

我正在尝试匹配以下格式的值:

, ####-####-####-####
, ####-########-#####
, ##-###-#-###-##-#-####
例如:
2018-03-10、2018-02-10-2019、10-20-2016

应该只捕获2018-02-10-2019年的
,但它捕获了所有线路

开头的
是可选的。我基本上是想找到包含3个或更多连字符的值

以下是我正在使用的:

(, )?([\/-]?)(\d+[\/-]?){4,}
这不仅捕获了我想要的值,而且还捕获了如下值:

30/05/2018
有人能帮我解决这个问题吗

编辑#1:


这不是一个重复的问题,一个是通过连字符匹配,另一个是匹配数字。它们位于不同的位置,代表不同的事物。

您可以使用这个正则表达式
(\d+(?:\-\d+{3,})

\d+
使匹配项在开头包含数字


(?:\-\d+{3,}
匹配连字符和其后任何数字重复3次或以上。“?”:用于将组(括号内的部分)设为非捕获组,以便该组结果不会在匹配中返回(例如re.findall)。

因此非捕获组基本上确保它存在,但不会返回它?如果非捕获组的值不存在,则绝对不会返回任何内容,对吗?可能的重复不是重复