从 URL 获取 Instagram 用户名 - 使用正则表达式忽略句点



我已经能够使用正则表达式从 Instagram 个人资料 URL 中检索用户名,但是一旦到达句号,它就会停止

.

完整网址: https://www.instagram.com/username.test.uk/

我的正则表达式的输出: https://www.instagram.com/username

我的正则表达式和输出:

// Regex for verifying an instagram URL
$regex = '/(?:(?:http|https)://)?(?:www.)?(?:instagram.com|instagr.am)/([A-Za-z0-9-_]+)/im';
// Verify valid Instagram URL
if ( preg_match( $regex, $instagram_url, $matches ) ) {
    $instagram_username = $matches[1];
    var_dump($instagram_username);

var 转储产生:用户名

需要对我的正则表达式进行任何明显的更改以排除 . 在用户名部分?

因此它会停止,因为您的用户名匹配项不包括.

/(?:(?:http|https)://)?(?:www.)?(?:instagram.com|instagr.am)/([A-Za-z0-9-_]+)/im

这可能应该包括([A-Za-z0-9-_]+)内的.。您还应该在正则表达式中的其他地方转义.,以便它仅匹配.字符而不是任何字符。

/(?:(?:http|https)://)?(?:www.)?(?:instagram.com|instagr.am)/([A-Za-z0-9-_.]+)/im

这将捕获所有字母数字、下划线和点。

用于由应用程序"名称标签选项"生成的链接

https?://www.?instagram.com/([A-Za-z0-9_](?:(?:[A-Za-z0-9_]|(?:.(?!.))){0,28}(?:[A-Za-z0-9_]))?S)?r=nametag

最新更新