folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder [C#] Youtube Video İd‘Sini Regex İle Alma?



[C#] Youtube Video İd‘Sini Regex İle Alma?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    smok3
    smok3's avatar
    Kayıt Tarihi: 09/Nisan/2007
    Erkek

    Youtube json apisini kullanarak bir kullanıcının videoları çekiyorum fakat bana videoların sadece id'si lazım. Malesef api sadece id'leri vermiyor.

    sanırım bunu regex ile halletmem gerekiyor ama regex bilgim sıfır. örneğin aşağıdaki url den sadece 9bZkp7q19f0  kısmını nasıl alabilirim? 

    http://gdata.youtube.com/feeds/api/videos/9bZkp7q19f0

     

    edit: hallettim :D

     

    merak eden olursa:

     

                string input = "http://gdata.youtube.com/feeds/api/videos/9bZkp7q19f0";
                Match match = Regex.Match(input, @"videos/([A-Za-z0-9\-]+)$");
    
                // Here we check the Match instance.
                if (match.Success)
                {
                    // Finally, we get the Group value and display it.
                    string videoid = match.Groups[1].Value;
                 }

    never say never...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    video id sini linkten ayırmak için 2 tane metod yazdım. birisi string fonksiyonları birisi de regex ile ilgili (yeniharman yardımcı oldu) . belki ilerde işine yarar..

    public string GetVideoIDFromVideoUrl(string p)
    {
    int tmp1 = 0, tmp2 = 0;
    if (p == null)
    return "";
    else
    {
    if (p.Contains('&') && p != "")
    {
    tmp1 = p.IndexOf("v=");
    tmp2 = p.IndexOf('&', tmp1 + 2);
    if (tmp1 < 0 && tmp2 < 0)
    return "";
    else
    return p.Substring(tmp1 + 2, tmp2 - tmp1 - 2);
    
    }
    else
    {
    tmp1 = p.IndexOf("v=");
    if (tmp1 < 0)
    return "";
    else
    return p.Substring(tmp1 + 2, p.Length - tmp1 - 2);
    
    }}}
    
    
    
    public string GetVideoIDFromVideoUrl2(string p)
    
    {
    
    // Regexli ifade v?=id şeklinde dönüyor
    string  vid = System.Text.RegularExpressions.Regex.Match(p, @"[\?&]([^=]*)=([^&]*)").Value; 
    return vid; }

    Aralarındaki tek var GetVideoIDFromVideoUrl2 metodu v?=.... şeklinde dönderiyor onu da substring fonksiyonlarıyla ilk 3 karakterini silerek halledebilirsin..

    unbalanced tarafından 15/Kas/12 00:34 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    smok3
    smok3's avatar
    Kayıt Tarihi: 09/Nisan/2007
    Erkek
    unbalanced bunu yazdı

    Aralarındaki tek var GetVideoIDFromVideoUrl2 metodu v?=.... şeklinde dönderiyor onu da substring fonksiyonlarıyla ilk 3 karakterini silerek halledebilirsin..

    video url sini apiden aldığım için parametresi yok zaten ama sağol yinede zaman ayırdığın için. bu arada verdiğin ilk fonksiyonu uyarlasam benim ilk posta eklediğim regex li çözüme göre gözle görülür bi performans farkı olur mu sence?


    never say never...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    hocam ağır bi iş yapmıyorsun ki? ama on binlerce linkden id yi ayırt edeceksen

    test etmek için stopwatch sınıfını kullanabilirsin. mesela elinde 10 bin link olan bir liste ayarla. fark etmez tek link de olur 10 bin kere for döngüsüyle çağırabilirsin.. bunu iki şekilde de hatta benim yolladığım regex ile deneyerek de yap sürelerini karşılaştır. aşağıdaki linkte bi örnek var 

    http://www.dotnetperls.com/stopwatch

     edit: eski projemden kopyaladım buraya yani daha önce yazılmıştı kod :)

    unbalanced tarafından 15/Kas/12 00:45 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    smok3
    smok3's avatar
    Kayıt Tarihi: 09/Nisan/2007
    Erkek

    150-200 tane url id si alıcak ve 0,1 saniye bile fark etse hızlısını kullanmaktan zarar gelmez :) en iyisi dediğin gibi stopwatch ile test etmek.


    never say never...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    önemli olan hızlısı değil hocam, stabil çalışanı. şimdi sen gözden kaçırdığın bi hata yaparsan regex farklı değer dönderebilir ya da hiç döndermez.

    ama kendi yazdığın kodlarda hatayı ona göre çıkarıp ona göre sonuç dönderebilirsin. 0.1 saniye çok da önemli değil :) mesela entity framework

    yavaş çalışıyor ama bana göre diğer sistemlere göre daha stabil ve kolay. o yüzden ado.net kullanacağıma entity framework kullanırım.  


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
Toplam Hit: 2023 Toplam Mesaj: 6