正则表达式是我的呐喊,任何人都可以帮助我从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,替换还是拆分?
如果有人可以推荐一个特别清晰和介绍性的正则表达式指南,他们认为有用,我们将不胜感激。
答案 0 :(得分:6)
您可以使用parse_url函数,然后从网址路径获取最后一段:
$parts=parse_url($url);
$path_parts=explode("/", $parts["path"]);
$page=$path_parts[count($path_parts)-1];
答案 1 :(得分:2)
对于学习和测试正则表达式,我发现RegExr是一个非常有用的在线工具:http://gskinner.com/RegExr/
但正如其他人所提到的,在这种情况下,使用适当的函数解析url可能会更好。
答案 2 :(得分:1)
我认为您可以直接使用此php function (parse_url)而不是使用正则表达式。
答案 3 :(得分:0)
使用smth:
substr(parse_url('https://www.facebook.com/PAGENAME?sk=wall&filter=2', PHP_URL_PATH), 1);