Heim > Backend-Entwicklung > PHP-Tutorial > Wie extrahiere ich YouTube-Video-IDs mithilfe regulärer Ausdrücke aus Text?

Wie extrahiere ich YouTube-Video-IDs mithilfe regulärer Ausdrücke aus Text?

Mary-Kate Olsen
Freigeben: 2024-12-16 15:49:18
Original
1040 Leute haben es durchsucht

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

So extrahieren Sie YouTube-Video-IDs aus Text mithilfe regulärer Ausdrücke

Problem:

Gegeben Ein Textfeld, in das Benutzer Text eingeben können. Die Aufgabe besteht darin, alle YouTube-Video-URLs und die entsprechenden zu extrahieren IDs.

Lösung mit regulären Ausdrücken:

Um YouTube-Video-IDs aus einer bestimmten Zeichenfolge zu extrahieren, können Sie einen regulären Ausdruck verwenden, der mit allen möglichen YouTube-URL-Formaten übereinstimmen kann. Hier ist ein Beispiel für eine Regex, mit der dies erreicht werden kann:

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

Regex-Aufschlüsselung:

  • https?://: Entspricht entweder dem HTTP- oder dem HTTPS-Protokoll.
  • (?:[0-9A-Z-] .)?: Entspricht einer optionalen Angabe Subdomain.
  • (?:youtu.be/|youtube(?:-nocookie)?.comS*?[^ws-]): Entspricht allen YouTube-Hostformaten, einschließlich „youtu.be“, „youtube.com“, „youtube-nocookie.com“ und ermöglicht zusätzliche Zeichen vor der Video-ID.
  • ([w-]{11}) (Aufnahmegruppe): Erfasst das YouTube-Video ID, eine 11-stellige alphanumerische Zeichenfolge.
  • (?=[^w-]|$): Positive Lookahead-Behauptung, die zutrifft, wenn das nächste Zeichen kein alphanumerisches Zeichen oder das Ende der Zeichenfolge ist.
  • (?![?=& %w.-]*(?:['"][^<>]*>|))[?=& %w.-]*: Negative Lookahead-Assertion, die die URL sicherstellt ist noch nicht verlinkt.

Verwendung:

Sie können diesen regulären Ausdruck mit jeder Programmiersprache verwenden, die unterstützt reguläre Ausdrücke. In JavaScript können Sie beispielsweise den folgenden Code verwenden, um YouTube-Video-IDs zu extrahieren:

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)) : [];
}
Nach dem Login kopieren

Beachten Sie, dass das Slice(17) das „https://www.youtube.com“ entfernt /watch?v="-Präfix aus der YouTube-URL, um die Video-ID zu extrahieren.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich YouTube-Video-IDs mithilfe regulärer Ausdrücke aus Text?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage