YouTube-Video-IDs aus Text mit regulären Ausdrücken finden
Ihr Ziel ist es, alle YouTube-Video-URLs zu identifizieren und ihre entsprechenden IDs aus einem Text abzurufen Feld. Reguläre Ausdrücke bieten ein leistungsstarkes Werkzeug zur Erfüllung dieser Aufgabe.
Informationen zu YouTube-URL-Formaten
YouTube-URLs gibt es in verschiedenen Formen, darunter:
Regex für die YouTube-Video-ID-Extraktion
Unten finden Sie einen regulären Ausdruck, der alle diese Formate abgleicht und das YouTube-Video erfasst ID:
https?://(?:[0-9A-Z-]+\.)?(?:youtu\.be/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|</a>))[?=&+%\w.-]*
Regex-Erklärung
Beispiel Code
In PHP können Sie die folgende Funktion verwenden, um die Video-URLs durch Links zu ersetzen:
function linkifyYouTubeURLs($text) { $text = preg_replace('~(?#!js YouTubeId Rev:20160125_1800) # Match non-linked youtube URL in the wild. (Rev:20130823) https?:// # Required scheme. Either http or https. (?:[0-9A-Z-]+\.)? # Optional subdomain. (?: # Group host alternatives. youtu\.be/ # Either youtu.be, | youtube # or youtube.com or (?:-nocookie)? # youtube-nocookie.com \.com # followed by \S*? # Allow anything up to VIDEO_ID, [^\w\s-] # but char before ID is non-ID char. ) # End host alternatives. ([\w-]{11}) # : VIDEO_ID is exactly 11 chars. (?=[^\w-]|$) # Assert next char is non-ID or EOS. (?! # Assert URL is not pre-linked. [?=&+%\w.-]* # Allow URL (query) remainder. (?: # Group pre-linked alternatives. [\'"][^<>]*> # Either inside a start tag, | </a> # or inside <a> element text contents. ) # End recognized pre-linked alts. ) # End negative lookahead assertion. [?=&+%\w.-]* # Consume any URL (query) remainder. ~ix', '<a href="http://www.youtube.com/watch?v=">YouTube link: </a>', $text); return $text; }
In JavaScript führt der folgende Code einen ähnlichen Vorgang aus:
function linkifyYouTubeURLs(text) { var re = /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|</a>))[?=&+%\w.-]*/ig; return text.replace(re, '<a href="http://www.youtube.com/watch?v=">YouTube link: </a>'); }
Das obige ist der detaillierte Inhalt vonWie kann ich YouTube-Video-IDs mithilfe regulärer Ausdrücke aus Text extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!