Regex 正则表达式捕获出现在某些关键字之后的日期

Regex 正则表达式捕获出现在某些关键字之后的日期,regex,Regex,我有一系列需要处理的文本文件,内容如下: Bla Bla数据库:2014年8月7日数据段pagamento do rendimento: 2014年8月14日Valor Distributibuído por cota:0.83雷亚尔 我需要捕获文件中的日期,但我还需要限定我找到的日期。例如,在关键字“base”之后,如果有日期,我想捕获它(在单词“base”之后找到的第一个日期)。在单词“base”和日期之间可以有许多其他单词或字符 日期的格式可以是d/M/yyyy或dd/MM/yyyy 我正

我有一系列需要处理的文本文件,内容如下:

Bla Bla数据库:2014年8月7日数据段pagamento do rendimento: 2014年8月14日Valor Distributibuído por cota:0.83雷亚尔

我需要捕获文件中的日期,但我还需要限定我找到的日期。例如,在关键字“base”之后,如果有日期,我想捕获它(在单词“base”之后找到的第一个日期)。在单词“base”和日期之间可以有许多其他单词或字符

日期的格式可以是d/M/yyyy或dd/MM/yyyy

我正在尝试以下正则表达式模式:

"base.+(?<date>[0123]?[0-9]/[01]?[0-9]/[12]?[90]?[0-9][0-9])"
“基础+(?[0123]?[0-9]/[01]?[0-9]/[12]?[90]?[0-9][0-9])”
但是我没有得到正确的结果

有人能帮我吗


谢谢

试试不贪婪的版本


base.+?([0123]?[0-9]/[01]?[0-9]/[12]?[90]?[0-9][0-9])

你说的“合格”是什么意思?“验证”?然后使用一个简单的
base:\s*\d{1,2}\/\d{1,2}/(?:\d{4}\d{2})
regex,然后使用
DateTime.TryParseExact
(C#,在编程语言中使用等效项)来检查格式。如果格式始终是
:[date]
,并且日期是8-10个字符(0-9和/),您可以尝试以下方法:
:([\d]/]
只是一个备注:只有当
base
与日期在同一行(如果不是Qt QRegExp)时,才会匹配。