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 我正在尝试以下正则表达式模式: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 我正
"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)时,才会匹配。