ホームページ >バックエンド開発 >PHPチュートリアル >正規表現を使用してテキストから YouTube 動画 ID を抽出する方法

正規表現を使用してテキストから YouTube 動画 ID を抽出する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-16 15:49:18941ブラウズ

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

正規表現を使用してテキストから YouTube 動画 ID を抽出する方法

問題:

ユーザーがテキストを入力できるテキスト フィールド。タスクはすべての YouTube 動画 URL とそれに対応する URL を抽出することです。 ID。

正規表現を使用した解決策:

指定された文字列から YouTube 動画 ID を抽出するには、考えられるすべての YouTube URL 形式に一致する正規表現を使用できます。これを実現できるサンプル正規表現を次に示します。

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

正規表現の内訳:

  • https?://: HTTP または HTTPS プロトコルのいずれかに一致します。
  • (?:[0-9A-Z-] .)?: オプションのsubdomain.
  • (?:youtu.be/|youtube(?:-nocookie)?.comS*?[^ws-]): 「youtu.be」を含む、任意の YouTube ホスト形式と一致します。 「youtube.com」、「youtube-nocookie.com」、ビデオ ID の前に追加の文字を許可します。
  • ([w-]{11}) (キャプチャ グループ): 11 文字の英数字文字列である YouTube ビデオ ID をキャプチャします。
  • (?=[^w-]|$): 次の文字が英数字または末尾ではない場合に一致する肯定的な先読みアサーション文字列の
  • (?![?=& %w.-]*(?:['"][^<>]*>|))[?=& %w.-]*: URL を保証する否定先読みアサーションすでにそうではありません

使用法:

この正規表現は、正規表現をサポートする任意のプログラミング言語で使用できます。たとえば、JavaScript では、次のように使用できます。 YouTube ビデオ ID を抽出するコード:

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)) : [];
}

slice(17) により、 YouTube URL から「https://www.youtube.com/watch?v=」プレフィックスを使用してビデオ ID を抽出します。

以上が正規表現を使用してテキストから YouTube 動画 ID を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。