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

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-30 01:34:10804Durchsuche

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

YouTube-Video-IDs aus Strings mit Regex extrahieren

Problem:

Sie haben ein Textfeld, in das Benutzer beliebige Eingaben machen können Text, und Sie müssen alle YouTube-Video-URLs und die zugehörigen URLs extrahieren IDs.

Lösung:

Um YouTube-Video-IDs mithilfe eines regulären Ausdrucks aus Zeichenfolgen zu extrahieren, führen Sie die folgenden Schritte aus:

  1. Definieren Sie den Regex Muster:

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

    Erklärung:

    • Übereinstimmt das Video-URL-Muster mit verschiedenen Formaten
    • Erfasst die YouTube-ID in 1 $
  2. Verwenden Sie die Regex zum Parsen des Textes:

    Verwenden Sie die Funktion re.findall, um nach allen YouTube-Video-URLs im Text zu suchen.

    import re
    
    def find_video_ids(text):
        pattern = r'https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&amp;+%\w.-]*(?:['"][^<>]*>|</a>))[?=&amp;+%\w.-]*'
        return re.findall(pattern, text)
  3. Extrahieren Sie die Video-IDs:

    Die re.findall-Funktion gibt eine Liste übereinstimmender Video-URLs zurück. Sie können von jeder URL aus auf die Video-IDs zugreifen, indem Sie [:11] verwenden (YouTube-Video-IDs sind 11 Zeichen lang).

    def get_video_ids(text):
        video_urls = find_video_ids(text)
        return [url[:11] for url in video_urls]

Beispiel:

text = """
Lorem Ipsum is simply dummy text.
https://www.youtube.com/watch?v=DUQi_R4SgWo
of the printing and typesetting
industry. Lorem Ipsum has been the
industry's standard dummy text ever
since the 1500s, when an unknown
printer took a galley of type and
scrambled it to make a type specimen
book. It has survived not only five
centuries, but also the leap into
electronic typesetting, remaining
essentially unchanged.
https://www.youtube.com/watch?v=A_6gNZCkajU&amp;feature=relmfu
It was popularised in the 1960s with
the release of Letraset sheets
containing Lorem Ipsum passages, and
more recently with desktop publishing
software like Aldus PageMaker
including versions of Lorem Ipsum."""

video_ids = get_video_ids(text)
print(video_ids)
# Output: ['DUQi_R4SgWo', 'A_6gNZCkajU']

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

Stellungnahme:
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