Maison >développement back-end >tutoriel php >Comment extraire les identifiants de vidéos YouTube du texte à l'aide d'expressions régulières ?

Comment extraire les identifiants de vidéos YouTube du texte à l'aide d'expressions régulières ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-16 15:49:18943parcourir

How to Extract YouTube Video IDs from Text Using Regular Expressions?

Comment extraire les identifiants de vidéos YouTube à partir de texte à l'aide d'expressions régulières

Problème :

Donné un champ de texte dans lequel les utilisateurs peuvent saisir du texte, la tâche consiste à extraire toutes les URL des vidéos YouTube et leurs correspondances ID.

Solution utilisant des expressions régulières :

Pour extraire les identifiants de vidéos YouTube d'une chaîne donnée, vous pouvez utiliser une expression régulière qui peut correspondre à tous les formats d'URL YouTube possibles. Voici un exemple d'expression régulière qui peut y parvenir :

https?://(?:[0-9A-Z-]+\.)?(?:youtu.be/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&amp;+%\w.-]*(?:['"][^<>]*>|</a>))[?=&amp;+%\w.-]*

Répartition de l'expression régulière :

  • https?:// : correspond au protocole HTTP ou HTTPS.
  • (?:[0-9A-Z-] .)? : Correspond à un élément facultatif sous-domaine.
  • (?:youtu.be/|youtube(?:-nocookie)?.comS*?[^ws-]) : correspond à tous les formats d'hébergement YouTube, y compris "youtu.be", "youtube.com", "youtube-nocookie.com" et autorise des caractères supplémentaires avant l'ID de la vidéo.
  • ([w-]{11}) (Capture Group) : capture l'ID de la vidéo YouTube, lequel est une chaîne alphanumérique de 11 caractères.
  • (?=[^w-]|$) : assertion d'anticipation positive qui correspond si le caractère suivant n'est pas un caractère alphanumérique ou la fin de la chaîne.
  • (?![?=& %w.-]*(?:['"][^<>]*>|))[?=& %w.-]* : assertion d'anticipation négative qui garantit l'URL n'est pas déjà lié.

Utilisation :

Vous pouvez utiliser cette expression régulière avec n'importe quel langage de programmation qui prend en charge les expressions régulières. Par exemple, en JavaScript, vous pouvez utiliser le code suivant pour extraire les identifiants de vidéos YouTube :

function extractYouTubeIds(text) {
  const regex = /https?://(?:[0-9A-Z-]+\.)?(?:youtu.be/|youtube(?:-nocookie)?.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&amp;+%\w.-]*(?:['"][^<>]*>|</a>))[?=&amp;+%\w.-]*/;
  const matches = text.match(regex);
  return matches ? matches.map(id => id.slice(17)) : [];
}

Notez que le slice(17) supprime le "https://www. youtube.com/watch?v=" préfixe de l'URL YouTube pour extraire l'ID de la vidéo.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn