Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengekstrak ID Video YouTube daripada Teks Menggunakan Ungkapan Biasa?

Bagaimana untuk Mengekstrak ID Video YouTube daripada Teks Menggunakan Ungkapan Biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-16 15:49:18941semak imbas

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

Cara Mengekstrak ID Video YouTube daripada Teks Menggunakan Ungkapan Biasa

Masalah:

Diberikan medan teks di mana pengguna boleh memasukkan teks, tugasnya adalah untuk mengekstrak semua URL video YouTube dan yang sepadan ID.

Penyelesaian menggunakan Ungkapan Biasa:

Untuk mengekstrak ID video YouTube daripada rentetan tertentu, anda boleh menggunakan ungkapan biasa yang boleh memadankan semua format URL YouTube yang mungkin. Berikut ialah contoh regex yang boleh mencapai ini:

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

Pecahan Regex:

  • https?://: Padan sama ada protokol HTTP atau HTTPS.
  • (?:[0-9A-Z-] .)?: Padan dengan pilihan subdomain.
  • (?:youtu.be/|youtube(?:-nocookie)?.comS*?[^ws-]): Padan dengan mana-mana format hos YouTube, termasuk "youtu.be", "youtube.com", "youtube-nocookie.com", dan membenarkan aksara tambahan sebelum ID video.
  • ([w-]{11}) (Kumpulan Tangkap): Tangkap YouTube ID video, yang merupakan rentetan abjad angka 11 aksara.
  • (?=[^w-]|$): Penegasan pandangan ke hadapan positif yang sepadan jika aksara seterusnya bukan aksara abjad angka atau penghujung rentetan .
  • (?![?=& %w.-]*(?:['"][^<>]*>|))[?=& %w.-]*: Penegasan pandangan negatif yang memastikan URL belum dipautkan.

Penggunaan:

Anda boleh menggunakan regex ini dengan mana-mana bahasa pengaturcaraan yang menyokong ungkapan biasa Contohnya, dalam JavaScript, anda boleh menggunakan kod berikut untuk mengekstrak ID video 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)) : [];
}

Perhatikan bahawa slice(17) mengalih keluar "https: //www.youtube.com/watch?v=" awalan daripada URL YouTube untuk mengekstrak ID video.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak ID Video YouTube daripada Teks Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn