Facebook 帖子/视频 URL 正则表达式

Posted

技术标签:

【中文标题】Facebook 帖子/视频 URL 正则表达式【英文标题】:Facebook post/video URL regex 【发布时间】:2016-12-07 04:37:15 【问题描述】:

我试图区分给定的 Facebook URL 是帖子还是视频。

幸运的是,Facebook lists the possible URLs 用于帖子和视频:

帖子:

https://www.facebook.com/page-name/posts/post-id> https://www.facebook.com/username/posts/post-id> https://www.facebook.com/username/activity/activity-id>

https://www.facebook.com/photo.php?fbid=photo-id>

https://www.facebook.com/photos/photo-id>

https://www.facebook.com/permalink.php?story_fbid=post-id> https://www.facebook.com/media/set?set=set-id> https://www.facebook.com/questions/question-id> https://www.facebook.com/notes/username/note-url/note-id>

视频:

https://www.facebook.com/page-name/videos/video-id/> https://www.facebook.com/username/videos/video-id/> https://www.facebook.com/video.php?id=video-id> https://www.facebook.com/video.php?v=video-id>

但是,我不知道如何使用正则表达式来检查给定的 URL 是否与上述 URL 之一匹配。

我已经启动了一个 regex101 页面,但我不知道从这里去哪里:

https://regex101.com/r/M7RTVP/2

【问题讨论】:

@Stargateur javascript 我再次问你为什么需要一个正则表达式?你的目的是什么?如果您说出来,我们真的可以更好地帮助您 【参考方案1】:

Posts:/^https:\/\/www\.facebook\.com\/(photo(\.php|s)|permalink\.php|media|questions|notes|[^\/]+\/(activity|posts))[\/?].*$/gm

Videos:/^https:\/\/www\.facebook\.com\/([^\/?].+\/)?video(s|\.php)[\/?].*$/gm

【讨论】:

几个问题。 page-nameusername 是展示位置,即 username 可以是任何用户的用户名,例如 bobsammy。与page-namenote-url 相同。 @user7260348 啊,是的。已更新。【参考方案2】:

一个简单的子字符串搜索就足够了,但这些会起作用:

帖子:(?:post|activity|photo|media|questions|note|story)

视频:video

【讨论】:

以上是关于Facebook 帖子/视频 URL 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

包含正斜杠的 Django URL 正则表达式

YouTube ID 的正则表达式 [重复]

Jmeter-正则表达式语法

如何从 facebook 视频 url 中提取缩略图

正则表达式从 youtube/vimeo url 中提取域和视频 ID

YouTube Vimeo 视频 ID 来自嵌入代码或来自带有 PHP 正则表达式 RegEx 的 URL