Reg exp для ссылки YouTube

В системе, которую я разрабатываю, я должен распознать ссылку YouTube в следующем формате

[YouTube] URL YouTube [/YouTube]

в настоящий момент я прибыл в это регулярное выражение:

#\[youtube\]http://www.youtube\.(.*)/watch\?v=([a-zA-Z0-9_-]*)\[\/youtube\]#s

Но этот шаблон не может распознать URL как

[YouTube] http://www.youtube.com/watch?v=s3wXkv1VW54&feature=fvst [/YouTube]

Отметьте feature=fvst.

Кто-то может помочь мне в, распознают весь возможный URL YouTube?

7
задан Tim Pietzcker 8 February 2010 в 10:15
поделиться

2 ответа

Как насчет

|\[youtube\]http://www.youtube\.(.*?)/watch\?v=([a-zA-Z0-9_-]*)[%&=#a-zA-Z0-9_-]*\[\/youtube\]|s

РЕДАКТИРОВАТЬ: изменено регулярное выражение, чтобы внутри скобок оставался только идентификатор видео.

4
ответ дан 7 December 2019 в 12:19
поделиться

Примечания:
Я бы выполнял сопоставление URL без учета регистра (/ i)
{{1} }. соответствует чему угодно; использовать \. вместо этого для соответствия URL
Также "www." в URL-адресах Youtube не является обязательным.
Используйте (\. [Az] +) {1,2} вместо «. *» Для соответствия «.com», «.co.uk», .. после «youtube»

Предполагая, что часть «& feature» является необязательной, регулярное выражение будет выглядеть следующим образом:

/ \ [youtube \] http: \ / \ / (www \.)? Youtube (\. [Az] +) {1,2} \ / watch \? v = ([a-z0-9 _-] *) (& feature = ([az] +))? \ [\ / youtube \] / is

Предполагая, что часть «& feature» является необязательной, И могут быть другие параметры, кроме "функции":

/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&([a-z]+)=([a-z0-9_-])+)*?\[\/youtube\]/is
1
ответ дан 7 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: