У меня возникли проблемы с инструкцией preg_match this time.Использование регулярных выражений для соответствия временному интервалу
TF 02:30 pm-04:00 am
Я был в состоянии отделить время в массив, но я также хочу, чтобы получить AM
и PM
, а также письма T
и F
. Это для модуля расписания классов, над которым я работаю. Данные, которые я получил из базы данных, это строка. Я хочу разделить их так, чтобы я мог манипулировать записями для календаря, который у меня есть.
Вот что я имею в этой точке.
$sampleString = 'T 02:30 pm-04:00 am';
$pattern = '/([0-1]?\d|2[0-9]):([0-5]?\d)/';
preg_match_all($pattern,$sampleString,$time);
print_r($time);
Выход:
Array (
[0] => Array (
[0] => 02:30
[1] => 04:00)
[1] => Array (
[0] => 02
[1] => 04)
[2] => Array (
[0] => 30
[1] => 00)
)
Спасибо.
что вы хотите получить именно? покажите нам пример, как вы это делали и на время –
Во-первых, вы не можете построить шаблон, основанный только на одном примере - вам нужно знать, какие возможные значения могут содержать каждая часть строки. Разделите строку на части и создайте небольшое регулярное выражение для каждого из них - например, вы можете сопоставить первую часть с '/ T? F? /'. Не беспокойтесь о том, чтобы захватить нужные части, когда вы тестируете - как только вы знаете, как соответствовать всей строке, вы можете пройти через полное регулярное выражение, какие части вам нужно захватить, и обернуть их в скобки. – IMSoP
шаблон для строки: «[MTWHFSS] [0-1] [0-2]: [0-5] [0-9] [am | pm] - [0-1] [0-2]: [0-5] [0-9] [am | pm] ". Я хочу получить день, который является либо «М», либо «W», часом, минутой и будет ли это am или pm. – Paul