使用正则表达式从 url 中查找 Fb Post id
Find Fb Post id from url with regex
我在使用正则表达式时遇到问题。有人可以帮我获取最后一个 URL 的 ID 吗?
正则表达式:
(?:(?:http|https):\/\/(?:www|m|mbasic|business)\.(?:facebook|fb)\.com\/)(?:photo(?:\.php|s)|permalink\.php|video\.php|media|watch\/|questions|notes|[^\/]+\/(?:activity|posts|videos|photos))[\/?](?:fbid=|story_fbid=|id=|b=|v=|)([0-9]+|[^\/]+\/[\d]+)
正则表达式 Link: https://regex101.com/r/TvJ7Uh/15
URLs:
https://m.facebook.com/pagefdgname/posts/990086801384551/ ✔️ Works
https://mbasic.facebook.com/username/posts/990086801384551:b ✔️ Works
https://www.facebook.com/username/activity/990086801384551rt ✔️ Works
https://www.facebook.com/photo.php?fbid=990086801384551=?=works ✔️ Works
https://mbasic.facebook.com/photos/990086801384551 ✔️ Works
https://www.facebook.com/permalink.php?story_fbid=990086801384551&? ✔️ Works
https://www.facebook.com/questions/990086801384551/ ✔️ Works
https://www.facebook.com/page-name/videos/990086801384551/ ✔️ Works
https://www.facebook.com/username/videos/990086801384551/ ✔️ Works
http://business.facebook.com/watch/?v=990086801384551 ✔️ Works
https://www.facebook.com/video.php?id=990086801384551 ✔️ Works
https://www.facebook.com/video.php?v=990086801384551 ✔️ Works
https://www.facebook.com/sgsxdfg/photos/pb.104-958162837./990086801384551/ ❌ Issue
我想从上次 URL
中捕获 990086801384551
您可以使用 branch reset group,将最后一个 ([0-9]+|[^\/]+\/[\d]+)
替换为 (?|([0-9]+)|[^\/]+\/(\d+))
。
更新后的正则表达式看起来像
(?:https?:\/\/(?:www|m|mbasic|business)\.(?:facebook|fb)\.com\/)(?:photo(?:\.php|s)|permalink\.php|video\.php|media|watch\/|questions|notes|[^\/]+\/(?:activity|posts|videos|photos))[\/?](?:fbid=|story_fbid=|id=|b=|v=|)(?|([0-9]+)|[^\/]+\/(\d+))
请注意 (?:http|https)
已签约给 https?
。
我在使用正则表达式时遇到问题。有人可以帮我获取最后一个 URL 的 ID 吗?
正则表达式:
(?:(?:http|https):\/\/(?:www|m|mbasic|business)\.(?:facebook|fb)\.com\/)(?:photo(?:\.php|s)|permalink\.php|video\.php|media|watch\/|questions|notes|[^\/]+\/(?:activity|posts|videos|photos))[\/?](?:fbid=|story_fbid=|id=|b=|v=|)([0-9]+|[^\/]+\/[\d]+)
正则表达式 Link: https://regex101.com/r/TvJ7Uh/15
URLs:
https://m.facebook.com/pagefdgname/posts/990086801384551/ ✔️ Works
https://mbasic.facebook.com/username/posts/990086801384551:b ✔️ Works
https://www.facebook.com/username/activity/990086801384551rt ✔️ Works
https://www.facebook.com/photo.php?fbid=990086801384551=?=works ✔️ Works
https://mbasic.facebook.com/photos/990086801384551 ✔️ Works
https://www.facebook.com/permalink.php?story_fbid=990086801384551&? ✔️ Works
https://www.facebook.com/questions/990086801384551/ ✔️ Works
https://www.facebook.com/page-name/videos/990086801384551/ ✔️ Works
https://www.facebook.com/username/videos/990086801384551/ ✔️ Works
http://business.facebook.com/watch/?v=990086801384551 ✔️ Works
https://www.facebook.com/video.php?id=990086801384551 ✔️ Works
https://www.facebook.com/video.php?v=990086801384551 ✔️ Works
https://www.facebook.com/sgsxdfg/photos/pb.104-958162837./990086801384551/ ❌ Issue
我想从上次 URL
中捕获990086801384551
您可以使用 branch reset group,将最后一个 ([0-9]+|[^\/]+\/[\d]+)
替换为 (?|([0-9]+)|[^\/]+\/(\d+))
。
更新后的正则表达式看起来像
(?:https?:\/\/(?:www|m|mbasic|business)\.(?:facebook|fb)\.com\/)(?:photo(?:\.php|s)|permalink\.php|video\.php|media|watch\/|questions|notes|[^\/]+\/(?:activity|posts|videos|photos))[\/?](?:fbid=|story_fbid=|id=|b=|v=|)(?|([0-9]+)|[^\/]+\/(\d+))
请注意 (?:http|https)
已签约给 https?
。