regex - Azure 媒体播放器播放错误 (0x10600003)

标签 regex azure azure-functions

不久前,我们开始使用 Azure Media Player 在我们的网站上播放视频,直到最近它都运行良好。

曾经有效的链接:

http://trueiqmediaservice.streaming.mediaservices.windows.net/1002f113-9ccc-49a9-8549-c4bebabb47ee/Why are we makin.ism/manifest

这是定义正则表达式的方法:

private function register_embed_handler()
{
    wp_embed_register_handler(
        'f',
        '#((http[s]?):\/)?(\/)(\/)?fhtrueiqmediaservice\.streaming\.mediaservices\.windows\.net\/?(.*)_(.*).ism\/manifest#',
        [$this, 'wp_embed_register_handler']
    );
}

嗯..看起来 Azure 更新了它们处理链接的方式,因此更改为:

https://mediasvcclqg331kwhpnq.blob.core.windows.net/asset-ab84ad2b-3ae4-4024-afd3-8f12cdecc266/2020-02-03 Crispin EDIT 2_1.mp4?sv=2017-04-17&sr=c&si=8b3d0ab4-5d65-470e-a26e-f7e65782f36a&sig=UW1aCdpqR7g2GSUeCD5ASiEazkSMl7q4SwiDLhtfHdQ%3D&st=2020-04-16T19%3A16%3A07Z&se=2120-04-******

我将如何处理新链接中使用的正则表达式?我对正则表达式很糟糕,并且不知道如何开始解决这个问题。所有帮助将不胜感激!

最佳答案

您之前的模式非常具体,新链接有点长。

例如,您可以使用使第一部分特定的模式,如果 .mp4 应始终存在,请确保与其匹配。

由于示例链接中唯一可能的空格位于 .mp4 的文件名中,因此您可以使用 \S* 匹配 0+ 次出现来匹配字符串的其余部分非空白字符。

https?:\/\/[^.\s]+\.blob\.core\.windows\.net\/asset-[a-f0-9]+(?:-[a-f0-9]+)+\/.*?\.mp4\S*

说明

  • https?:\/\/ 将协议(protocol)与可选 s 匹配,然后 ://
  • [^.\s]+ 匹配除 . 或空白字符 之外的任何字符 1+ 次(网址的第一部分可能看起来像这样有点随机。如果不是,您可以按字面意思进行匹配)
  • \.blob\.core\.windows\.net\/asset- 匹配 .blob.core.windows.net/asset-
  • [a-f0-9]+(?:-[a-f0-9]+)+ 匹配类似 guid 的模式,其中连字符部分重复 1 次或多次
  • \/.*?\.mp4 匹配 / 后跟至少一个可能的字符,直到遇到 .mp4
  • \S* 匹配 0 次以上非空白字符

Regex demo

关于regex - Azure 媒体播放器播放错误 (0x10600003),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61274047/

相关文章:

ruby - 与原子分组混淆 - 它与 Ruby 正则表达式中的分组有何不同?

azure - 使用自定义 DNS 将 Azure Pack 连接到 Windows Server 的服务总线

node.js - 如何从azure容器获取文件夹列表?

python - 如何从 asp.net Azure 应用服务调用 python 脚本?

c# - 在运行时版本 3.1 中连接到 Azure Function 中的 Azure Analysis Services

Azure函数代理正则表达式匹配条件路由

java - 替换Java中的正则表达式匹配

c# - 无法正则表达式替换

regex - 解析游戏的控制台命令?

powershell - 从 Azure PowerShell 函数提供 HTML 页面