2013-03-14 7 views
0

Вот ошибка я получаю preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 77Могу ли я немного помочь отладке этого регулярного выражения?

А вот бизнес:

$youtubeIdPattern = "#(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^\"&\n]+|(?<=??(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+#"; 
       $youtubeIdMatch = array(); 
       if (isset($regexMatch[0]) && $regexMatch[0] != "") : 
        preg_match($youtubeIdPattern,$regexMatch[0],$youtubeIdMatch); 
       endif; 

FYI, мы пытаемся захватить только идентификатор видео с Youtube URL.

ответ

3

Если у вас есть две вопросительные знаки в строке (?=??(? - вы имеете в виду, что это будет буквальный знак вопроса (\?)?

+0

Это именно то, что было не так. Сбежал? и это сработало. Спасибо, что заметили это. –

3

Это ??, Брайан!

? необходимо сбежать, если вы хотите соответствовать буквальному ?.

Смежные вопросы