2013-02-19 174 views
0

基本上我有一個用戶創建的字符串,它可能有或沒有用於youtube的iframe鏈接。由於這是一個客戶端應用程序,它不使用html標籤,並且我有一個特殊的窗體顯示youtube videos 。但是,我需要從標籤中獲取src,並用空白替換它周圍的所有數據。 它也可以有多個鏈接所以這個需要是這樣的正則表達式做全球吧..C#從iframe html標籤獲取src?

例子: 用戶字符串:

<iframe width='300px' height='225px' src='http://www.youtube-nocookie.com/embed/4FhG-UYRHJ0' frameborder='0' allowfullscreen></iframe> 

我想做什麼輸出: 我希望用戶只看到:http://www.youtube-nocookie.com/embed/4FhG-UYRHJ0然後我可以處理其餘的。

任何幫助非常感謝,因爲我不知道如何開始這一點。謝謝你們。

+1

隨着[HtmlAgilityPack(http://htmlagilitypack.codeplex.com/),你可以做到這一點 – tttony 2013-02-19 03:36:58

+0

你應該嘗試自己做,這是一個非常簡單的正則表達式。此網站旨在幫助解決問題,而不是爲您做好工作。 – ilomambo 2013-02-19 03:46:52

+0

我目前正在學習7種語言,每種語言都與其他語言完全不同。正則表達式在這一點上會讓我困惑。另外爲什麼嘗試重新發明輪子?如果有人已經做到了,他們的嘗試很可能會比我更好。 – user1763295 2013-02-19 13:25:15

回答

3

,你也可以使用這個

string iframe = "<iframe width='300px' height='225px' src='http://www.youtube-nocookie.com/embed/4FhG-UYRHJ0' frameborder='0' allowfullscreen></iframe>"; 

      Match matchdec = Regex.Match(iframe, @"\ssrc='\b(\S*)\b", RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase); 
      if (matchdec.Success) 
      { 
       if (matchdec.Groups.Count > 1) 
       { 
        string retval = matchdec.Groups[1].Value; 
       } 
      } 

所有符合您可以使用: -

string iframe = "<iframe width='300px' height='225px' src='http://www.youtube-nocookie.com/embed/4FhG-UYRHJ0' frameborder='0' allowfullscreen></iframe>"; 
       iframe += "<iframe width='300px' height='225px' src='http://www.youtube-nocookie.com/embed/newid' frameborder='0' allowfullscreen></iframe>"; 

       Match matchdec = Regex.Match(iframe, @"\ssrc='\b(\S*)\b", RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase); 
       while (matchdec.Success) 
       { 
        if (matchdec.Groups.Count > 1) 
        { 
         string retval = matchdec.Groups[1].Value; 
        } 
        matchdec = matchdec.NextMatch(); 
       } 

來代替添加此行

iframe = Regex.Replace(iframe, retval, "yournewurl"); 

希望這會有所幫助。

+0

這是說,當我把正則表達式放入時,無法識別的轉義序列? – user1763295 2013-02-19 13:12:23

+0

忽略以上,我忘了@。非常感謝這個正則表達式完美工作。 – user1763295 2013-02-19 13:32:03

1

這裏是一個正則表達式讓你開始:

(?<=src=')[^']+ 

注:可能是不佔優勢的一些情況。我會離開,作爲一個練習OP :)

+0

這似乎沒有選擇實際的src,但它正在拾取src的每個實例。 – user1763295 2013-02-19 13:24:16