2015-03-11 3 views
1

В настоящее время у меня есть строка, обозначающая название видео. Строка аннулировала продолжительность времени 00:00. В настоящее время мое регулярное выражение не разделяет титры и продолжительность. Как это можно сделать?Regex - длительность разделения времени от строки

print_r(preg_split('#(?<=\d)(?=[a-z])#', "The title of video 2:43")); 

Результат:

Array 
(
    [0] => The title of video 2:43 
) 

Желаемый результат:

Array 
(
    [0] => The title of video 
    [1] => 2:43 
) 
+0

Это неправильный подход. Что, если строка: «Человек-паук 3 2:43»? – anubhava

ответ

1

Вам нужно положить [a-z] внутрь положительных и \d назад 'внутри положительный предпросмотр. Поместите \s между этими утверждениями, чтобы он разделил ваш вход в соответствии с символом пробела между пробелами.

print_r(preg_split('#(?<=[a-z])\s(?=\d)#', "The title of video 2:43")); 
1

Чтобы избежать overmatching, когда заголовок видео заканчивается номером, вы можете попробовать использовать следующий код:

print_r(preg_split('#(?<=[a-z])\s(?=\d{1,2}\:\d{2})#', "The title of video 2:43"));