0

URL を検索し、URL が Silverlight ビデオ URL であるかどうかを判断する 2 つの正規表現があります。

  1. URL には、.isma、.ismv、.isml のいずれかの拡張子が少なくとも 1 つ含まれている必要があります。

    正規表現: .ism(a|v|l)

  1. URL には文字列「/QualityLevels({bitrate})/Fragments(audio={start-time})」が必要です

    正規表現: /QualityLevels(\d+)/Fragments(\b(オーディオ|ビデオ|テキスト)\b=\d+)

これら 2 つの文字列を 1 つに結合し、両方の条件が満たされていることを確認するにはどうすればよいですか?

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

サントッシュ

4

1 に答える 1

0

1 つの文字列を検索し、その後に (オプションの) 追加文字 (この URL がどのように表示されるかを知っている場合は、より具体的に指定できます) が続き、最後にファイル拡張子が続きます。

/QualityLevels(\d+)/Fragments(\b(audio|video|text)\b=\d+)(.+?)?.ism(a|v|l)
于 2013-03-26T23:13:31.287 に答える