【发布时间】:2021-03-04 14:53:07
【问题描述】:
我希望能够从 URL 中提取 Twitter 用户名。
例如:https://twitter.com/jack => 杰克
我发现这个正则表达式很有帮助。
if (preg_match("/^https?:\/\/(www\.)?twitter\.com\/(#!\/)?(?<name>[^\/]+)(\/\w+)*$/", $url, $regs)) {
return $regs['name'];
}
twitter URL 包含查询参数时似乎不起作用。
例如 = https://twitter.com/jack?lang=en 返回jack?lang=en
知道如何改进正则表达式来防止这种情况发生吗?
【问题讨论】:
-
或
~https?://(?:www\.)?twitter\.com/\K[^/?#]+~ -
我会改用
parse_url。 -
我明白了。我会调查的。谢谢@Jeto
-
只需删除查询字符串
$url = strtok($url, '?');。