用于提取多个日期的正则表达式

时间:2016-11-09 10:03:17

标签: php regex

我有一个包含两个日期的文本,我想从文本中提取两个日期,这个文本的正则表达式是什么。

he was out of city in period of 10/15/16 Sat 7am - 10/16/16 Sun 3am ₨350.00/hr - you have to remain onlines, which will enable you to meet him.

我有多个不同文本的字符串,但每个字符串都有两个日期。我如何在PHP中获取这些日期。只想获得10/15/16和10/16/16的日期

2 个答案:

答案 0 :(得分:0)

这应该让你接近:

(0[1-9]|1[012])\/([0][1-9]]|[12]\d|3[01])\/\d{2}\s[A-Z][a-z]{2}\s(\d|1[012])[ap]m

Action at Regex101

中查看此内容

如果您只想匹配有效日期:

(0[1-9]|1[012])\/([0][1-9]]|[12]\d|3[01])\/\d{2}

请参阅this example

答案 1 :(得分:0)

如果使用此模式,它将捕获格式x(x)/ x(x)/ xx(xx)。
含义一个或两个数字的日期和月份以及两个或四个数字年份。

$string = "he was out of city in period of 10/15/2016 Sat 7am - 10/16/16 Sun 3am ₨350.00/hr - you have to remain onlines, which will enable you to meet him.";
preg_match_all("/(\d{1,2}\/\d{1,2}\/\d{2,4})/", $string, $dates);


var_dump($dates[1]);