使用正则表达式以正确的方式将 Youtube 频道主页重定向到视频部分



我使用 Requestly 制定了一个正则表达式规则,每次我进入 youtube 频道时,它都会将我重定向到视频部分。我制定的规则是这样的:

/https://www.youtube.com/channel/(.+)/ig

替换为:

https://www.youtube.com/channel/$1/videos

将此作为测试字符串:

https://www.youtube.com/channel/random_name1234

,我得到这个:

https://www.youtube.com/channel/random_name1234/videos

当我错误地刷新页面时,问题就来了。因此,如果网址已经:

https://www.youtube.com/channel/random_name1234/videos

,我得到:

https://www.youtube.com/channel/random_name1234/videos/videos

如果我在频道的播放列表部分并刷新页面,我会得到:

https://www.youtube.com/channel/random_name1234/playlists/videos

如何通过修改正则表达式模式来解决此问题?我尝试了几次,但我失败了,因为我不太擅长正则表达式。

谢谢!

问题是.*将在任何内容上匹配 - 包括您是否已经在/videos页面上,或者其他一些部分,如/playlist/community等。

您可以通过说"仅匹配非正斜杠字符"来使正则表达式更具限制性,以确保有问题的 URL 实际上是主频道页面。

试试这个:

/https://www.youtube.com/channel/([^/]+)/?$/ig
  • [^/]+表示"一个或多个不是正斜杠的字符"。
  • /?的意思是"可选的正斜杠",以防 URL 末尾有一个尾随斜杠。
  • $的意思是"字符串的结尾",因此正则表达式在较长的 URL 上不匹配,例如https://www.youtube.com/channel/xxxxx/about

最新更新