正则表达式获得facebook的个人资料

本文关键字:个人资料 facebook 正则表达式 | 更新日期: 2023-09-27 18:12:38

我试图检查匹配facebook url并在一个正则表达式中获得配置文件:我:

http://www.facebook.com/profile.php?id=123456789
https://facebook.com/someusername

我需要

:

123456789
someusername

使用正则表达式:

(?<=(https?://(www.)?facebook.com/(profile.php?id=)?))([^/#?]+)

:

profile.php
someusername

什么错了吗?

正则表达式获得facebook的个人资料

我建议您使用System.Uri类来获取此信息。它可以为您完成困难的工作,并且可以处理各种边缘情况。

var profileUri = new Uri(@"http://www.facebook.com/profile.php?id=123456789");
var usernameUri = new Uri(@"https://facebook.com/someusername");
Console.Out.WriteLine(profileUri.Query); // prints "?id=123456789"
Console.Out.WriteLine(usernameUri.AbsolutePath); // prints "/someusername"

我同意其他人使用System。但是你的正则表达式需要两个修改才能工作:

  • ' in (profile.php'?id=)
  • p>('n|$)结尾

    (& lt; = (https://(www '。)? facebook ' .com/(概要' php ' ? id =)?))([^/#?]+)(' n | $)

下面的示例将查询?id=123456789写入控制台。

Uri baseUri = new Uri ("http://www.facebook.com/");
Uri myUri = new Uri (baseUri, "/profile.php?id=123456789");
Console.WriteLine(myUri.Query);

希望这对你有帮助!

试试这个:

https?://(?:www.)?facebook.com/(?:profile.php'?id=)?(.+)

https?://(?:www.)?facebook.com/(?:profile.php'?id=)?([^/#'?]+)