2013-03-26 5 views
0

URL이부스트 정규식에 두 개의 정규 표현식을 결합

  1. URL이 .isma 어떤 이러한 확장 중 하나 이상을 가지고해야 실버 동영상 URL 경우 나는 URL을 조회하고 결정이 정규 표현식을 ,의 .ismv, .isml

    정규식 : .ISM (A | V | 리터)

  1. URL 문자열 "/ QualityLevels ({비트 레이트})/조각 (오디오 = {시작 시간})"

    정규식이 있어야합니다 | 비디오/QualityLevels을 (\ D +)/조각 (\의 B (오디오 | 텍스트) \ b = \ d +)

두 문자열을 하나로 결합하고 두 조건이 모두 충족되는지 어떻게 확인합니까?

is_silverlight_livestream_url(const char *url) 
{ 
    /* expecting something that ends with 
    *  "xxx.isml/QualityLevels(<bitrate>)/Fragments(<type>=<timecode>)" 
    * on-demand streams have the extension ".ism" instead of ".isml" 
    */ 
    static boost::regex regex(my_regex_str); 
    try { 
     if (boost::regex_match(url, regex) == true) { 
      return true; 
     } 
    } catch (std::runtime_error e) { 
    } 
    return false; 
} 

Santhosh

답변

0

당신은 하나의 문자열을 찾아이 같은, (이 URL이 보일 것입니다 방법을 알고 있다면 당신은 더 구체적인 수) (옵션) 추가 문자 다음에있을 것입니다 다음 마지막에 파일 확장자 :

/QualityLevels(\d+)/Fragments(\b(audio|video|text)\b=\d+)(.+?)?.ism(a|v|l) 
+0

안녕 로스, 다음은'

 /PRCSTest1.isml/Events(2013_6_3_23_19_41_968)/QualityLevels(64000)/Fragments(audio=1120130612) /live/192.168.10.109_130312210620830hi/QualityLevels(64000)/Fragments(audio=86636270000)/ProxySessions(240022624).isma /live/192.168.10.109_130312210620830hi/QualityLevels(448000)/Fragments(video=86674890000)/ProxySessions(240022624).ismv
Santhosh

+0

,이 내 된 URL '의 /PRCSTest1.isml/Events (2013_6_3_23_19_41_968)/QualityLevels (64000)/조각 (오디오 = 1120130612)입니다 내 URL이 있습니다 '/live/192.168.10.109_130312210620830hi/QualityLevels(64000)/Frag 당신이 제안한 정규식이 작동하지 않는다는 것을 /messages (audio = 86636270000)/ProxySessions (240022624) .isma'' /live/192.168.10.109_130312210620830hi/QualityLevels (448000)/Fragments (video = 86674890000)/ProxySessions (240022624) .ismv' 이 모든 URL. – Santhosh