0

我这里有这个样本:

received date
something
something
26/6/2013
.
.
due date
something
27/6/2013

我只想获得第一次出现的接收日期。我正在尝试使用我拥有的这个正则表达式:

(?is)(?<=(invoice)?(?<!due.*?)date.*?)(\d{1,4}/\d{1,4}/\d{1,4})

我想要做的是获取前面是否有收到的日期,但如果有到期前缀,则避免获取。我只是想得到 26/6/2013 .. 也可能,它与这样的东西相同:

date
something
something
26/6/2013
.
.
due date
something
27/6/2013

我是正则表达式的新手,我花了很多时间尝试不同的组合,但似乎没有一个有效!

请帮忙谢谢!

编辑:

我正在使用 Expresso..

这是我从上面得到的输出:

26/6/2013
27/6/2013

再说一次,我只想得到第一个..

4

2 回答 2

0

问题可以简化为:获取第一个日期。

(?s)(\d{1,2}/\d{1,2}/\d{2,4}).*
于 2014-07-30T08:40:15.273 回答
0

你可以试试这个

received date[\w\s]*(?!due date)[\w\s]*[^\d](\d{1,4}/\d{1,4}/\d{1,4})

第 1 组捕获日期

或者

/received date.*?(?![\r\n]+due date).*?[^\d](\d{1,4}/\d{1,4}/\d{1,4})/s

于 2013-06-27T13:45:35.590 回答