저는 PHP를 처음 접하고 정규식을 학습했습니다. preg_match를 사용하여 표준 시간을 군사 시간으로 변환하려고합니다. 오는 데이터는 "1991 년 9 월 6 일 오후 6시 23 분"형식입니다. 코드의 다른 곳에서 이미 정규 표현식을 사용하여 "Month", "Day", "Year", "Hour"및 "Minutes"요소가있는 배열로 데이터를 분리했습니다. 프로그램에서 데이터를 살펴보고 PM으로 끝나는 경우 "Hour"요소에 12를 추가하려고합니다.PHP : preg_match가있는 정규 표현식
$의 original_data는 "6:23 PM에 1991년 9월 6일"와 $ broken_data 형식의 문자열입니다if (preg_match("/[A-Za-z0-9,:\s]*[PM]/", $original_data)) {
$broken_data[$j][3]= $broken_data[$j][3] + 12;
}
위에 설명 된 배열입니다 : 여기 내 코드입니다. preg_match가하고있는 일은 (그리고 의도하는) A-Z, a-z, 0-9, :, 쉼표 또는 공백이 PM 뒤에 오는 경우 true를 반환합니다. 이게 어떻게 잘못 됐어?
미리 감사드립니다.
'[PM]가'단일 문자 P''또는'M' –
과 일치 ● - [PHP 워드 프로세서]에 따라 (http://php.net/manual/en/function.preg-match .php), 배열로 컴포넌트를 가져 오기 위해서는 인수로'$ broken_data'를 전달해야합니다. –
감사합니다, Avinash! 그것을 [P] [M]로 변경하면 완벽하게 작동합니다. – zath1164