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)。因此非捕获组基本上确保它存在,但不会返回它?如果非捕获组的值不存在,则绝对不会返回任何内容,对吗?可能的重复不是重复