2017-06-05 95 views
1

我需要从字符串中提取日期,下面是我的代码和字符串。我如何从字符串中提取日期使用php

$str = "Updated status to Masters - Software Engineering (Enrolled- 
      Documents to Send) on 03/06/2014 14:10 by Rabih Haddad ."; 


if(preg_match_all('/.*([A-Za-z]{3,4}, [A-Za-z]{3,4} [\d]{1,2}, [\d]{4}).*/',$str,$matches)) 
{ 
    print_r($matches); 
} 
else 
    echo "not matched"; 

如何从字符串中提取date(03/06/2014)值。

+0

@ chris85我试过,但我没有收到 – somesh

+0

是的,它的工作@ chris85 – somesh

+0

好吧,我已经将其移至答案。 – chris85

回答

1

只需查找您之后的特定格式,然后使用2个数字然后使用正斜杠,然后再使用另外2个正斜杠,然后使用4个数字。

\d{2}\/\d{2}\/\d{4} 

PHP用法:

preg_match_all('/\d{2}\/\d{2}\/\d{4}/',$str,$matches) 

演示:https://eval.in/811793

你的正则表达式正在寻找不存在的字符。例如[A-Za-z]{3,4} [\d]{1,2}, [\d] {4}).*正在寻找3个或4个字母字符,一个空格1-2个数字,一个逗号,一个空格,一个数字,一个新行,4个空格,然后是之后的任何内容。

你的{4}是正确的,你只需要把它放在\d\d也不需要在字符类中。

+0

你对这个元请求有什么看法......为了帮助OP和奖励重复狩猎,如果OP发现已发布的重复链接足以解决雪花问题,那么+15可以去第一个人提名合适的链接。你认为这可行吗?它应该促进帮助者仔细审视这个问题并给出最好的“可能的重复”。也许这个信息会有不同的感觉(相比之下,“你的信息是重复的,所以我会试着保持沉默”)。 – mickmackusa

+0

@mickmackusa链接不包括。尽管我很少能够找到好的dups,有时甚至当我知道粗略的标题(例如,防止sql注入PHP)时,我找不到它们。自从我回答以后,我认为现在投票结束并不合适(我的回答也希望能够向OP解释一些其他内容)。 (虽然Dup看起来很彻底) – chris85