2009-06-09 10 views
0

こんにちはイム、これは正規表現フラッシュURL

flashvars="file=http://cache01-videos02.myspacecdn.com/24/vid_878ccd5444874681845df39eb3f00628.flv"/>

を解析しようとしているコードイム私は正規表現を使用して得た最も近いが、このました表現

ファイル= http://[^/] + /(。*)のFLV

それはファイル=の部分で出力しかし、どのように私は、ファイル=一部を除外していますか?次へ

答えて

2

私はあなたがこの必要があると思う:(?/<flashurl>...)部分は括弧の間の部分を抽出し、それに名前「flashurl」を与える

var [email protected]"flashvars=""file=http://cache01-videos02.myspacecdn.com/24/vid_878ccd5444874681845df39eb3f00628.flv"""; 
     var match = Regex.Match(url, @"file=(?<flashurl>http://[^/]+/(.*)flv)"); 
     var scrapedurl = match.Groups["flashurl"].Value; 

を。

+0

はい、これはあなたのコードだよ! –

0

変更正規表現と

public void ScrapeURLs(String input) { 
    Regex regex = new Regex("file=(http://[^/]+/.*flv)"); 

    foreach(Match m in regex.Matches(input)) { 
    //The URL should now be in the Groups property 
    //Note that Groups is a zero based index but Groups[0] will give the complete match 
    String url = m.Groups[1].Value; 

    //Do something with the URL... 
    } 
} 

グループのプロパティを使用して.NETの正規表現の構文は、グループ化の括弧()を使用して基本的には、パターン内の各括弧式は、グループのプロパティを介してアクセスできるようになります。グループは、ゼロから左から右に番号が付けされているが、全体の一致は常にグループとみなされ、常にこのパターンで注意すべき

編集

一つのことがあればということですGroupsコレクションにインデックス0を持つことになります入力に複数のFlash URLが含まれている場合、正規表現の貪欲な性質は、最初のURLの先頭から最後のURLの最後までのすべてのテキストを組み込んだ奇妙な一致を引き起こします。