Como o padrão funciona
| Parte | Significado |
|---|---|
(?:https?:\/\/)?(?:www\.|m\.)? | Scheme e subdomínio www ou m opcionais |
youtube\.com\/(?:watch\?v=|embed\/|shorts\/) | URLs de assistir, incorporar e Shorts |
youtu\.be\/ | Ou os links curtos youtu.be |
([\w-]{11}) | Grupo 1: o ID de vídeo de 11 caracteres |
(?:[?&#].*)? | Parâmetros extras opcionais, como &t=42 ou &list=… |
Exemplos de código
JavaScript
const re = /^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:https?://)?(?:www\.|m\.)?(?:youtube\.com/(?:watch\?v=|embed/|shorts/)|youtu\.be/)([\w-]{11})(?:[?&#].*)?', value))PHP
preg_match('/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/', $value) === 1;
Notas e limitações
O grupo 1 guarda o ID do vídeo, que você pode usar em https://www.youtube.com/embed/ID ou na URL da miniatura https://i.ytimg.com/vi/ID/hqdefault.jpg. A URL de assistir deve ter v= como primeiro parâmetro.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.