我已经能够使用regex从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 dump产生:用户名
需要对我的正则表达式进行任何明显的更改以排除。在用户名部分?
答案 0 :(得分:3)
所以它停止了,因为您对用户名的匹配不包括.
。
/(?:(?: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
这将捕获所有字母数字,下划线和点。
答案 1 :(得分:0)
对于由应用程序“名称标签选项”生成的链接
https?:\/\/www\.?instagram\.com\/([A-Za-z0-9_](?:(?:[A-Za-z0-9_]|(?:\.(?!\.))){0,28}(?:[A-Za-z0-9_]))?\S)\?r=nametag