0

基本的に、ユーザーが作成する文字列があり、YouTubeのiframeリンクがある場合とない場合があります。これはクライアントアプリケーションであるため、htmlタグを使用せず、YouTube動画などを表示する特別なフォームがあります。ただし、タグから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それで残りを処理できます。

私はこれから始める方法さえわからないので、どんな助けでも大歓迎です。皆さん、ありがとうございました。

4

3 に答える 3

4

これも使えます

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");

お役に立てれば。

于 2013-02-19T04:31:41.110 に答える
1

始めるための正規表現は次のとおりです。

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

注:考慮されていないいくつかのエッジケースである可能性があります。OPの演習として残しておきます:)

于 2013-02-19T03:56:02.500 に答える
0

以下のコードを使用できます。

var source = Regex.Match(iframeStr, "<iframe.+?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase).Groups[1].Value;
于 2018-08-06T22:06:59.567 に答える