繁体   English   中英

使用正则表达式从 URL 获取字符串?

[英]Using regex to get string from URL?

正则表达式是我的赌注,谁能帮我从 URL 中分离出一个字符串?

我想从 URL 中获取页面名称,该名称可以从输入表单中以下列任何一种方式出现:

https://www.facebook.com/PAGENAME?sk=wall&filter=2
http://www.facebook.com/PAGENAME?sk=wall&filter=2
www.facebook.com/PAGENAME
facebook.com/PAGENAME?sk=wall

... 等等。

我似乎无法找到一种方法来隔离.com/之后但之前的字符串? (如果有的话)。 是preg_match,replace还是split?

如果有人可以推荐他们认为有用的特别清晰和介绍性的正则表达式指南,我们将不胜感激。

您可以使用parse_url function 然后从 url 的路径中获取最后一段:

$parts=parse_url($url);
$path_parts=explode("/", $parts["path"]);
$page=$path_parts[count($path_parts)-1];

为了学习和测试正则表达式,我发现了一个在线工具 RegExr,非常有用: http://gskinner.com/RegExr/

但正如其他人所提到的,在这种情况下,使用适当的函数解析 url 可能会更好。

我认为您可以直接使用此php function (parse_url)而不是使用正则表达式。

像这样使用:

substr(parse_url('https://www.facebook.com/PAGENAME?sk=wall&filter=2', PHP_URL_PATH), 1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM