2009-06-09 4 views
0

안녕 임은 웹 사이트에 플래시 동영상의 URL을 긁어하는 C# 프로그램을 개발하기 위해 노력하고, 이것은 가장 가까운 내가 사용되었다 정규식이이었다 코드 메신저정규식 플래시 URL

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

을 구문 분석하려고 식

파일 = http://[^/] +/(. *) FLV

는 파일 = 부가 출력하지만 어떻게 파일을 필터링 할 부분 =?

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... 
    } 
} 

는 기본적으로 닷넷의 정규 표현식 구문을 그룹화 괄호()를 사용하는 다음과 사용하는 그룹 속성에

답변

2

난 당신이 필요하다고 생각 :

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; 

(?/<flashurl>...) 부분은 괄호 사이의 부분을 추출하고 그것에게 이름 "flashurl"을 줄 것이다;

+0

네, 그게 당신이 그렇게 많은 코드예요! –

0

변경에게 정규식은 패턴의 각 괄호 표현식은 그룹의 속성을 통해 액세스 할 수 있습니다 . 그룹은 0에서 왼쪽에서 오른쪽으로 번호가 매겨집니다하지만 전체 경기는 항상 그룹으로 간주되고 항상 그룹 컬렉션 인덱스 0을해야합니다

편집이 패턴에 주목해야 할

한 가지 인 경우 그 입력에 여러 개의 플래시 URL이 포함 된 경우 일반 표현식의 욕심 ​​많은 특성으로 인해 첫 번째 URL의 시작에서 마지막 URL의 끝까지 모든 텍스트가 포함 된 이상한 일치가 발생합니다.