我有日期格式字符串將含有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