我有两个正则表达式,用于查找网址并确定该网址是否为silverlight视频网址
网址应至少包含其中一个扩展名.isma,.ismv,.isml
正则表达式:.ism(a | v | l)
和
网址应包含字符串“/ QualityLevels({bitrate})/ Fragments(audio = {start-time})”
正则表达式:/ QualityLevels(\ d +)/ Fragments(\ 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 :(得分:0)
你会有这样的东西,你在那里寻找一个字符串,然后是(可选的)额外字符(如果你知道这个URL的外观,你可能会更具体),然后是文件扩展名:
/QualityLevels(\d+)/Fragments(\b(audio|video|text)\b=\d+)(.+?)?.ism(a|v|l)