使用正则表达式检测视频 ID

Detect video ID with regex

我正在尝试检测 vimeo URL 的 9 位 ID 部分。这是我目前所拥有的。

/\[\[(https?:\/\/vimeo\.com\/[0-9]+$)\]\]/gm

[[https://vimeo.com/channels/mercedesbenz/166551756]]
[[https://vimeo.com/153002910]]
[[https://vimeo.com/jp/channels/staffpicks/259634725]]

您正在寻找输入的结尾,而还剩下两个字符,并且您正在寻找紧跟在域名之后的数字,而在您的示例输入中,它们在 URL 中以不同的顺序出现。

\[\[(https?:\/\/vimeo\.com\/[0-9]+$)\]\]
                            ^^^^^^^

你可以这样做:

\[\[https?:\/\/vimeo\.com\/[^\]]*?(\d+)\]\]

Live demo

您可以尝试类似的方法:

(?<=\/)\d{9}(?=]]$)

这将匹配出现在斜杠 / 之后和 ]]$ 之前的 9 位数字,其中 $ 表示行尾。要仅匹配 vimeo 链接,您可以在前面的正则表达式中包含 vimeo.*,并捕获第 1 组中的数字:

vimeo.*(?<=\/)(\d{9})(?=]]$)