PHP 从 URL 获取 Twitter 用户名(正则表达式)

PHP Get Twitter username from URL (Regex)

我希望能够从 URL.

中提取 Twitter 用户名

例如:https://twitter.com/jack => jack

我发现这个正则表达式很有用。

  if (preg_match("/^https?:\/\/(www\.)?twitter\.com\/(#!\/)?(?<name>[^\/]+)(\/\w+)*$/", $url, $regs)) {
    return $regs['name'];
  }

当 twitter URL 包含查询参数时似乎不起作用。

例如=https://twitter.com/jack?lang=enreturnsjack?lang=en

知道如何改进正则表达式来防止这种情况发生吗?

preg_match('/https?:\/\/twitter\.com\/(?<name>[^\?]+)\??.*/', 'https://twitter.com/jack?lang=en', $m);
var_dump(trim($m['name']));
$path = parse_url('https://twitter.com/jack?lang=en',PHP_URL_PATH);
var_dump(str_replace('/','', $path));
string(4) "jack"