获取最后一个的正则表达式 URL
Regex For Get Last URL
我有:
whosebug.com/.../link/Eee_666/9_uUU/66_99U
/Eee_666/9_uUU/66_99U
的正则表达式是什么?
Eee_666
、9_uUU
、66_99U
为随机值
我该如何解决?
就这么简单:
$link = "whosebug.com/.../link/Eee_666/9_uUU/66_99U";
$regex = '~link/([^/]+)/([^/]+)/([^/]+)~';
# captures anything that is not a / in three different groups
preg_match_all($regex, $link, $matches);
print_r($matches);
请注意,它会占用 任何 字符,但 /
(包括换行符)除外,因此您要么也想排除其他字符,要么为引擎提供数据只有符合您格式的字符串。
参见 a demo on regex101.com。
你可以在这里使用\K
使我更彻底。
Whosebug\.com/.*?/link/\K([^/\s]+)/([^/\s]+)/([^/\s]+)
查看演示。
如果您不知道字符串的长度:
$string = whosebug.com/.../link/Eee_666/9_uUU/66_99U
$regexp = ([^\/]+$)
结果:
group1 = 66_99U
小心它也可能捕获结束行字符
这种需求,使用preg_split combined with array_slice更简单:
$url = 'whosebug.com/.../link/Eee_666/9_uUU/66_99U';
$elem = array_slice(preg_split('~/~', $url), -3);
print_r($elem);
输出:
Array
(
[0] => Eee_666
[1] => 9_uUU
[2] => 66_99U
)
我有:
whosebug.com/.../link/Eee_666/9_uUU/66_99U
/Eee_666/9_uUU/66_99U
的正则表达式是什么?
Eee_666
、9_uUU
、66_99U
为随机值
我该如何解决?
就这么简单:
$link = "whosebug.com/.../link/Eee_666/9_uUU/66_99U";
$regex = '~link/([^/]+)/([^/]+)/([^/]+)~';
# captures anything that is not a / in three different groups
preg_match_all($regex, $link, $matches);
print_r($matches);
请注意,它会占用 任何 字符,但 /
(包括换行符)除外,因此您要么也想排除其他字符,要么为引擎提供数据只有符合您格式的字符串。
参见 a demo on regex101.com。
你可以在这里使用\K
使我更彻底。
Whosebug\.com/.*?/link/\K([^/\s]+)/([^/\s]+)/([^/\s]+)
查看演示。
如果您不知道字符串的长度:
$string = whosebug.com/.../link/Eee_666/9_uUU/66_99U
$regexp = ([^\/]+$)
结果:
group1 = 66_99U
小心它也可能捕获结束行字符
这种需求,使用preg_split combined with array_slice更简单:
$url = 'whosebug.com/.../link/Eee_666/9_uUU/66_99U';
$elem = array_slice(preg_split('~/~', $url), -3);
print_r($elem);
输出:
Array
(
[0] => Eee_666
[1] => 9_uUU
[2] => 66_99U
)