我已经能够使用正则表达式从 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