Wiedermal RegExp...

  • Guten Tag,

    Ich bräuchte mal Hilfe in einem relativ großem RegExp-String.

    Ich muss die Youtube Video ID aus allem möglichen Youtube links extrahieren können,
    hier mal ein paar Beispiele wo es funktionieren sollte:


    Und wie ihr wahrscheinlich erkannt habt brauch ich das "{vidid}" welches bei Youtube meistens bzw. immer aus 11 Zeichen besteht, (meines wissens)
    aber bei manchen Links werden noch Parameter mitgegeben die Ignoriert werden sollen.

    Nach dem ich schon 2 Stunden rumprobiert habe hab ich das im Internet gefunden:

    [autoit]

    (?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^"&\n]+|(?<=??(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+

    [/autoit]


    Aber leider Funktioniert es nicht / nicht immer.

    Ich glaube es sieht komplizierter aus als es ist...
    Ich würde mich sehr um Hilfe freuen!

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

    Einmal editiert, zuletzt von PuReIroNie (25. Februar 2013 um 21:54)

  • Wie wärs mit einem anderen Ansatz? Ich würde mir den Quellcode des Players (der ja bei allen Links fast gleich bleibt) ansehen und versuchen über diesen dann an die ID zu gelangen... ;) Du kannst hiermit ja mal testen:

    [autoit]

    #include <Array.au3>
    Local $sURL, $aResult
    $sURL = "http://www.youtube.com/watch?v=RGpkNPbSa2Q"
    $aResult = StringRegExp(BinaryToString(InetRead($sURL)), '"video_id": "(.+?)"', 3)
    _ArrayDisplay($aResult, $sURL)

    [/autoit]

    LG
    Christoph :)

  • Ah Danke, auf die art hab ich es auch gemacht, aber nur mit dem Titel, also ich glaube so währe es auch Optimaler ;D
    besten Dank, darauf bin ich nicht gekommen, es so Einfacher zu machen.

    E: Was ist das für ein Video xD?

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

    Einmal editiert, zuletzt von PuReIroNie (25. Februar 2013 um 21:59)