我有日期格式字符串将含有Y,M和D.例如,某些格式可能是:从一组匹配的匹配的第一个字符
YY-MM-DD
M-D-Y G
MM/Y/DD
(etc)
我想上运行一个正则表达式匹配像这样的字符串并依次提取Y,M,D。例如,在上面的,我想有:
array('Y', 'M', 'D');
array('M', 'D', 'Y');
array('M', 'Y', 'D');
(etc)
我写了这个正则表达式expresion:
/(m+)|(d+)|(y+)/
但问题是,它返回整场比赛,而不是第一个字符像所以:
array('YY', 'MM', 'DD');
array('M', 'D', 'Y');
array('MM', 'Y', 'D');
(etc)
如何编写我的表达式,以便它只返回第一个字符?
编辑:一些代码(真的没什么复杂的)。
$dates = array('YY-MM-DD', 'M-D-Y G', 'MM/Y/DD');
foreach($dates as $date){
preg_match_all('/(m+)|(d+)|(y+)/', strtolower($date), $matches);
var_dump($matches);
}
这工作得很好,但是如果格式是YYYYMMDD,它不起作用。 – F21
好的,请参阅我的编辑。 –
完美!正是我需要的。谢谢你的帮助 :) – F21