0

我有两个正则表达式,它们查找一个 url 并确定该 URL 是否是一个 silverlight 视频 url

  1. URL 在 .isma、.ismv、.isml 的任何地方都应该至少有一个

    正则表达式:.ism(a|v|l)

  1. URL 应包含字符串“/QualityLevels({bitrate})/Fragments(audio={start-time})”

    正则表达式:/QualityLevels(\d+)/Fragments(\b(audio|video|text)\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;
}

桑托什

4

1 回答 1

0

您将有类似这样的内容,在其中查找一个字符串,然后是(可选)额外字符(如果您知道此 URL 的外观,您可能会更具体),然后是文件扩展名:

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