Angular 在角度代理中匹配各种URL的正则表达式

Angular 在角度代理中匹配各种URL的正则表达式,angular,regex,proxy,Angular,Regex,Proxy,在我的Angular应用程序中,我有一个代理,这样我就可以通过youtube视频绕过CORS问题 这是我的代理: { "\/api": { "target": "https://r1---sn-25ge7nsl.googlevideo.com", "secure": true, "changeOrigin": true, "logL

在我的Angular应用程序中,我有一个代理,这样我就可以通过youtube视频绕过CORS问题

这是我的代理:

{
    "\/api": {
      "target": "https://r1---sn-25ge7nsl.googlevideo.com",
      "secure": true,
      "changeOrigin": true,
      "logLevel": "debug",
      "pathRewrite": {
        "^\/api": "/"
      }
    }
 }
我的目标是一个youtube源视频,我从后端的python应用程序中获取。但除了这一部分外,每个来源的开头都是相同的:

"https://"xxxxxxxxxxx".googlevideo.com" 
例如:

"https://r1---sn-25ge7jsl.googlevideo.com"
"https://r2---sn-25ge7ns4.googlevideo.com"
"https://r8---sn-25ge7nsl.googlevideo.com"

我认为正则表达式可以帮助我有一个与任何其他目标匹配的单一目标。我做了一些研究,发现每个匹配的字符都是
/.*/
,如何重写我的目标?

您可以尝试以下模式:

https:\/\/.+\.googlevideo\.com
第一部分,
https:\/\/
,将找到以
https://
开头的字符串。反斜杠是为了避开前斜杠。根据您使用的正则表达式的风格(我不熟悉
Angular
),您可能需要也可能不需要这些反斜杠

下一部分,
+
,匹配任何字符的一个或多个实例。如果将
+
替换为贪婪的
*
,它将匹配任何字符的零个或多个实例

模式的最后一部分,
\.googlevideo\.com
,将匹配以
.googlevideo.com
结尾的字符串。再次注意使用反斜杠来避免使用句点。您需要在此处使用这些反斜杠,否则此模式将匹配任何字符的实例,从而使以下内容有效:
fgooglevideo5com

如果您想更进一步,可以尝试以下方法:

https:\/\/.{2}---.{2}-.{8}\.googlevideo\.com
{2}-.{2}-.{8}
匹配任何两个字符,后跟三个连字符,后跟另外两个字符,后跟一个连字符,然后后跟八个字符